From 9388c62ff7be3cec4b13f81dce1ae7085418d275 Mon Sep 17 00:00:00 2001 From: Andreas Karlsson Date: Fri, 15 Nov 2024 20:06:24 +0100 Subject: [PATCH 2/3] Complete ON and USING keywords for joins --- src/bin/psql/tab-complete.in.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/bin/psql/tab-complete.in.c b/src/bin/psql/tab-complete.in.c index 095e4525df3..617dd53365e 100644 --- a/src/bin/psql/tab-complete.in.c +++ b/src/bin/psql/tab-complete.in.c @@ -5137,6 +5137,18 @@ match_previous_words(int pattern_id, /* ... JOIN ... */ else if (TailMatches("JOIN")) COMPLETE_WITH_SCHEMA_QUERY_PLUS(Query_for_list_of_selectables, "LATERAL"); + else if (TailMatches("JOIN", MatchAny) && !TailMatches("CROSS|NATURAL", "JOIN", MatchAny)) + COMPLETE_WITH("ON", "USING ("); + else if (TailMatches("JOIN", MatchAny, MatchAny) && + !TailMatches("CROSS|NATURAL", "JOIN", MatchAny, MatchAny) && !TailMatches("ON|USING")) + COMPLETE_WITH("ON", "USING ("); + else if (TailMatches("JOIN", "LATERAL", MatchAny, MatchAny) && + !TailMatches("CROSS|NATURAL", "JOIN", "LATERAL", MatchAny, MatchAny) && !TailMatches("ON|USING")) + COMPLETE_WITH("ON", "USING ("); + else if (TailMatches("JOIN", MatchAny, "USING") || + TailMatches("JOIN", MatchAny, MatchAny, "USING") || + TailMatches("JOIN", "LATERAL", MatchAny, MatchAny, "USING")) + COMPLETE_WITH("("); /* ... AT [ LOCAL | TIME ZONE ] ... */ else if (TailMatches("AT")) -- 2.45.2