From 544767dd4afddebcf053332373b1f0cd15a3acdf Mon Sep 17 00:00:00 2001 From: "Atsuo (Jorge) Yamaguchi" Date: Sun, 22 Mar 2026 20:14:55 +0000 Subject: [PATCH] Add tab completion for SERVER and CONNECTION keywords in psql The SERVER keyword in ALTER/CREATE SUBSCRIPTION and the CONNECTION keyword in ALTER/CREATE FOREIGN DATA WRAPPER were missing from psql's tab completion support. This patch adds them. --- src/bin/psql/tab-complete.in.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/bin/psql/tab-complete.in.c b/src/bin/psql/tab-complete.in.c index 5bdbf1530a2..74dc1c987cf 100644 --- a/src/bin/psql/tab-complete.in.c +++ b/src/bin/psql/tab-complete.in.c @@ -2342,6 +2342,8 @@ match_previous_words(int pattern_id, COMPLETE_WITH("CONNECTION", "ENABLE", "DISABLE", "OWNER TO", "RENAME TO", "REFRESH PUBLICATION", "REFRESH SEQUENCES", "SERVER", "SET", "SKIP (", "ADD PUBLICATION", "DROP PUBLICATION"); + else if (Matches("ALTER", "SUBSCRIPTION", MatchAny, "SERVER")) + COMPLETE_WITH_QUERY(Query_for_list_of_servers); /* ALTER SUBSCRIPTION REFRESH */ else if (Matches("ALTER", "SUBSCRIPTION", MatchAny, MatchAnyN, "REFRESH")) COMPLETE_WITH("PUBLICATION", "SEQUENCES"); @@ -2459,9 +2461,9 @@ match_previous_words(int pattern_id, /* ALTER FOREIGN DATA WRAPPER */ else if (Matches("ALTER", "FOREIGN", "DATA", "WRAPPER", MatchAny)) COMPLETE_WITH("HANDLER", "VALIDATOR", "NO", - "OPTIONS", "OWNER TO", "RENAME TO"); + "OPTIONS", "OWNER TO", "RENAME TO", "CONNECTION"); else if (Matches("ALTER", "FOREIGN", "DATA", "WRAPPER", MatchAny, "NO")) - COMPLETE_WITH("HANDLER", "VALIDATOR"); + COMPLETE_WITH("HANDLER", "VALIDATOR", "CONNECTION"); /* ALTER FOREIGN TABLE */ else if (Matches("ALTER", "FOREIGN", "TABLE", MatchAny)) @@ -3548,7 +3550,7 @@ match_previous_words(int pattern_id, /* CREATE FOREIGN DATA WRAPPER */ else if (Matches("CREATE", "FOREIGN", "DATA", "WRAPPER", MatchAny)) - COMPLETE_WITH("HANDLER", "VALIDATOR", "OPTIONS"); + COMPLETE_WITH("HANDLER", "VALIDATOR", "OPTIONS", "CONNECTION"); /* CREATE FOREIGN TABLE */ else if (Matches("CREATE", "FOREIGN", "TABLE", MatchAny)) @@ -3915,6 +3917,8 @@ match_previous_words(int pattern_id, /* CREATE SUBSCRIPTION */ else if (Matches("CREATE", "SUBSCRIPTION", MatchAny)) COMPLETE_WITH("SERVER", "CONNECTION"); + else if (Matches("CREATE", "SUBSCRIPTION", MatchAny, "SERVER")) + COMPLETE_WITH_QUERY(Query_for_list_of_servers); else if (Matches("CREATE", "SUBSCRIPTION", MatchAny, "SERVER", MatchAny)) COMPLETE_WITH("PUBLICATION"); else if (Matches("CREATE", "SUBSCRIPTION", MatchAny, "CONNECTION", MatchAny)) -- 2.47.3