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

Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>

From: ilmari@ilmari.org (Dagfinn Ilmari Mannsåker )
To: David Fetter <david@fetter.org>
Cc: Michael Paquier <michael@paquier.xyz>, pgsql-hackers@postgresql.org
Date: 2018-10-24T09:36:41Z
Lists: pgsql-hackers

Attachments

David Fetter <david@fetter.org> writes:

> On Wed, Oct 24, 2018 at 08:43:05AM +0900, Michael Paquier wrote:
>> On Tue, Oct 23, 2018 at 12:26:35PM +0100, Dagfinn Ilmari Mannsåker wrote:
>> > The last-minute change for CREATE (EVENT) TRIGGER to accept EXECUTE
>> > FUNCTION as well as EXECUTE PROCEDURE did not update the tab completion
>> > in psql to match.  Please find attached two patches that do this for
>> > CREATE TRIGGER and CREATE EVENT TRIGGER, respectively.
>> 
>> Yes, it would be nice to fix that.
>> 
>> > To keep the duplication minimal, I've changed it from completing EXECUTE
>> > PROCEDURE as a single thing to just EXECUTE, and then completing
>> > FUNCTION or FUNCTION and PROCEDURE after that depending on the server
>> > version.
>> 
>> +       else if (HeadMatches("CREATE", "EVENT", "TRIGGER") && TailMatches("EXECUTE"))
>> +               if (pset.sversion >= 110000)
>> +                       COMPLETE_WITH("FUNCTION", "PROCEDURE");
>> +               else
>> +                       COMPLETE_WITH("PROCEDURE");
>> 
>> PROCEDURE is documented as deprecated as of v11 for CREATE TRIGGER
>> and CREATE EVENT TRIGGER.  Wouldn't it be better to just complete
>> with FUNCTION for a v11 or newer server?  I think that we want to
>> encourage users to use EXECUTE FUNCTION if possible.
>
> +1 for not completing with syntax we've just deprecated.

Fair point. I was unsure about whether to complete every supported
variant or just the new one.  Updated patches attached.

- ilmari
-- 
"I use RMS as a guide in the same way that a boat captain would use
 a lighthouse.  It's good to know where it is, but you generally
 don't want to find yourself in the same spot." - Tollef Fog Heen

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.