Simplify tab completion of extension versions, redux.
authorTom Lane <[email protected]>
Sun, 3 Jul 2022 19:27:27 +0000 (15:27 -0400)
committerTom Lane <[email protected]>
Sun, 3 Jul 2022 19:27:27 +0000 (15:27 -0400)
After commit 662dbe2c8, psql tab completion didn't conveniently
support the case of "ALTER EXTENSION foo UPDATE".  It'd always
add "TO", which is fine if you want to specify a target version
but not if you don't ... and surely the latter is the much more
common case.

To fix, remove "TO" from the initially offered completion; you now
need to press TAB one additional time to get that.  We won't try to
duplicate the old behavior of attempting initial completion on the
target version along with TO.  It's too squirrelly to get the quoting
right, and this is such an infrequent usage that it doesn't seem worth
expending a lot of effort and special code on.

Noted by Noah Misch.  Back-patch to v15.

Discussion: https://postgr.es/m/20220703083217[email protected]

src/bin/psql/tab-complete.c

index 463cac9fb07bb56c45a40f50f9fa1561a2eb2d30..c5cafe6f4bf942c49f8beca684777b799268a728 100644 (file)
@@ -1927,7 +1927,7 @@ psql_completion(const char *text, int start, int end)
 
    /* ALTER EXTENSION <name> */
    else if (Matches("ALTER", "EXTENSION", MatchAny))
-       COMPLETE_WITH("ADD", "DROP", "UPDATE TO", "SET SCHEMA");
+       COMPLETE_WITH("ADD", "DROP", "UPDATE", "SET SCHEMA");
 
    /* ALTER EXTENSION <name> UPDATE */
    else if (Matches("ALTER", "EXTENSION", MatchAny, "UPDATE"))