pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: bt22kawamotok <bt22kawamotok@oss.nttdata.com>
To: pgsql-hackers@postgresql.org
Subject: [PATCH]Feature improvement for MERGE tab completion
Date: Fri, 09 Sep 2022 11:18:13 +0900
Message-ID: <9f1ad2a87a58cd5e7d64f3993130958d@oss.nttdata.com> (raw)

Hi!

I created a patch for improving MARGE tab completion.
Currently there is a problem with "MERGE INTO dst as d Using src as s ON 
d.key = s.key WHEN <tab>" is typed, "MATCHED" and "NOT MATCHED" is not 
completed.
There is also a problem that typing "MERGE INTO a AS <tab>" completes 
"USING".
This patch solves the above problems.

Regards,
Kotaro Kawamoto

Attachments:

fix_tab_complete_merge.patch (text/x-diff, 1.4K) download diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index 62a39779b9..ed1f8c5f17 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -4068,7 +4068,7 @@ psql_completion(const char *text, int start, int end) /* with [AS] alias */ else if (TailMatches("MERGE", "INTO", MatchAny, "AS", MatchAny)) COMPLETE_WITH("USING"); - else if (TailMatches("MERGE", "INTO", MatchAny, MatchAny)) + else if (TailMatches("MERGE", "INTO", MatchAny, MatchAny) && !TailMatches("AS")) COMPLETE_WITH("USING"); else if (TailMatches("MERGE", "INTO", MatchAny, "AS", MatchAny, "USING")) COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables); @@ -4095,6 +4095,12 @@ psql_completion(const char *text, int start, int end) COMPLETE_WITH("WHEN MATCHED", "WHEN NOT MATCHED"); else if (TailMatches("USING", MatchAny, MatchAny, "ON", MatchAny)) COMPLETE_WITH("WHEN MATCHED", "WHEN NOT MATCHED"); + else if (TailMatches("USING", MatchAny, "ON", MatchAny, "WHEN")) + COMPLETE_WITH("MATCHED", "NOT MATCHED"); + else if (TailMatches("USING", MatchAny, "AS", MatchAny, "ON", MatchAny, "WHEN")) + COMPLETE_WITH("MATCHED", "NOT MATCHED"); + else if (TailMatches("USING", MatchAny, MatchAny, "ON", MatchAny, "WHEN")) + COMPLETE_WITH("MATCHED", "NOT MATCHED"); else if (TailMatches("WHEN", "MATCHED")) COMPLETE_WITH("THEN", "AND"); else if (TailMatches("WHEN", "NOT", "MATCHED"))

view thread (21+ messages)  latest in thread

Message-ID: <9f1ad2a87a58cd5e7d64f3993130958d@oss.nttdata.com>
Permalink:  ../9f1ad2a87a58cd5e7d64f3993130958d@oss.nttdata.com/
Also on:    postgresql.org/message-id/9f1ad2a87a58cd5e7d64f3993130958d@oss.nttdata.com

 ·  · 

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: pgsql-hackers@postgresql.org
  Cc: bt22kawamotok@oss.nttdata.com
  Subject: Re: [PATCH]Feature improvement for MERGE tab completion
  In-Reply-To: <9f1ad2a87a58cd5e7d64f3993130958d@oss.nttdata.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox