On 2022-09-09 11:18, bt22kawamotok wrote:

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.

Thanks for the patch!

        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");

I thought it would be better to describe this section as follows, summarizing the conditions

        else if (TailMatches("USING", MatchAny, "ON", MatchAny, "WHEN") ||
TailMatches("USING", MatchAny, "AS", MatchAny, "ON", MatchAny, "WHEN") ||
                         TailMatches("USING", MatchAny, MatchAny, "ON", MatchAny, 
"WHEN"))
                COMPLETE_WITH("MATCHED", "NOT MATCHED");

There are similar redundancies in the tab completion of MERGE statement, so why not fix that as well?

--
Regards,

--
Shinya Kato
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION


Reply via email to