Simplify tab completion of extension versions, redux.
authorTom Lane
Sun, 3 Jul 2022 19:27:27 +0000 (15:27 -0400)
committerTom Lane
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 bd44a1d55da6bbd9d7c7d778ad21e5b4ab26d6fd..89861f6ac02c00ca7c151b6bec8c7eafb0dfa657 100644 (file)
@@ -1927,7 +1927,7 @@ psql_completion(const char *text, int start, int end)
 
    /* ALTER EXTENSION  */
    else if (Matches("ALTER", "EXTENSION", MatchAny))
-       COMPLETE_WITH("ADD", "DROP", "UPDATE TO", "SET SCHEMA");
+       COMPLETE_WITH("ADD", "DROP", "UPDATE", "SET SCHEMA");
 
    /* ALTER EXTENSION  UPDATE */
    else if (Matches("ALTER", "EXTENSION", MatchAny, "UPDATE"))