Re: [PATCH] Tab complete EXECUTE FUNCTION for CREATE (EVENT) TRIGGER

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: ilmari@ilmari.org (Dagfinn Ilmari Mannsåker )
Cc: Michael Paquier <michael@paquier.xyz>, David Fetter <david@fetter.org>, pgsql-hackers@postgresql.org
Date: 2018-10-25T11:32:37Z
Lists: pgsql-hackers
ilmari@ilmari.org (Dagfinn Ilmari =?utf-8?Q?Manns=C3=A5ker?=) writes:
> Tom Lane <tgl@sss.pgh.pa.us> writes:
>> Yeah.  Why don't we keep the existing behavior of completing both
>> words at once, but make it server-version-dependent which completion
>> you get?

> I did that initially, but because COMPLETE_WITHc() requres constant
> arguments, I had to repeat the whole list with just changing PROCEDURE
> to FUNCTION, which I thought was undesirably repetitive.  If there's a
> more concise alternative to the below, or the consensus is that saving
> one TAB press is worth it, I'll change it.

>     else if (HeadMatches("CREATE", "TRIGGER") && TailMatches("ON", MatchAny))
>         if (pset.sversion >= 110000)
>             COMPLETE_WITH("NOT DEFERRABLE", "DEFERRABLE", "INITIALLY",
>                           "REFERENCING", "FOR", "WHEN (", "EXECUTE FUNCTION");
>         else
>             COMPLETE_WITH("NOT DEFERRABLE", "DEFERRABLE", "INITIALLY",
>                           "REFERENCING", "FOR", "WHEN (", "EXECUTE PROCEDURE");

Well, that's not beautiful, but there aren't so many alternatives
that it's really unmaintainable.  I think it's probably better than
requiring an additional TAB-press.

			regards, tom lane


Commits

  1. Add tab completion of EXECUTE FUNCTION for CREATE TRIGGER in psql

  2. Improve tab completion of CREATE EVENT TRIGGER in psql

  3. Improve tab completion for ANALYZE, EXPLAIN, and VACUUM.