public inbox for [email protected]
help / color / mirror / Atom feedFrom: Yamaguchi Atsuo <[email protected]>
To: [email protected]
Subject: Add tab completion for SERVER and CONNECTION keywords in psql
Date: Sun, 22 Mar 2026 13:30:30 -0700
Message-ID: <CAKSyusJWdWcUKVd3qJXcEaQxJewGymQWV_r3-mc=Knrqo0AZ_g@mail.gmail.com> (raw)
Hi,
This patch adds missing tab completion support in psql for:
- SERVER keyword after ALTER/CREATE SUBSCRIPTION <name>
- CONNECTION keyword after ALTER/CREATE FOREIGN DATA WRAPPER <name>
Currently, typing "ALTER SUBSCRIPTION sub1 SERVER" and pressing Tab
does not complete server names, even though the SERVER keyword itself
is already suggested. Similarly, CONNECTION is not suggested as a
completion candidate for FOREIGN DATA WRAPPER commands, despite being
a valid option.
The patch is generated against the current master branch.
Regards,
Atsuo Yamaguchi
Attachments:
[application/octet-stream] 0001-Add-tab-completion-for-SERVER-and-CONNECTION-keyword.patch (2.7K, 3-0001-Add-tab-completion-for-SERVER-and-CONNECTION-keyword.patch)
download | inline diff:
From 544767dd4afddebcf053332373b1f0cd15a3acdf Mon Sep 17 00:00:00 2001
From: "Atsuo (Jorge) Yamaguchi" <[email protected]>
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 <name> 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 <name> */
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 <name> */
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
view thread (4+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected]
Subject: Re: Add tab completion for SERVER and CONNECTION keywords in psql
In-Reply-To: <CAKSyusJWdWcUKVd3qJXcEaQxJewGymQWV_r3-mc=Knrqo0AZ_g@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox