Thread

  1. Re: TAB completion for ALTER TABLE ... ALTER CONSTRAINT ... ENFORCED

    Kirill Reshke <reshkekirill@gmail.com> — 2025-12-29T20:40:27Z

    On Mon, 29 Dec 2025 at 20:13, Roman Khapov <rkhapov@yandex-team.ru> wrote:
    >
    >
    >
    > > On 11 Aug 2025, at 18:20, Kirill Reshke <reshkekirill@gmail.com> wrote:
    > >
    > > Hi hackers!
    > >
    > > While looking at [0] I noticed that  current psql tab-complete lacks support for
    > >
    > > ALTER TABLE ... ALTER CONSTRAINT ... [NOT] ENFORCED and
    > >
    > > ALTER TABLE ... ALTER CONSTRAINT ... [NO] INHERIT
    > >
    > > patterns.
    >
    > Hi!
    >
    > > COMPLETE_WITH("ENFORCED", "NOT ENFORCED", "NO INHERIT", "INHERIT");
    >
    > According to gram.y there might be DEFERRABLE and NOT DEFERRABLE, INITIALLY IMMEDIATE and INITIALLY DEFERRED (NOT VALID is acceptable by rules but not by the action)
    >
    > Maybe we can add them too? If so, i attached v2 patch with this options added.
    >
    > --
    > Best regards,
    > Roman Khapov
    >
    >
    >
    
    
    Thanks. PFA v3 with commit msg polishing, and added support for NOT -
    statement patterns.
    
            }
    +       /* if we have ALTER TABLE <sth> ALTER|DROP|RENAME CONSTRAINT
    <constraint> NOT, provide DEFERRABLE or ENFORCED */
    +       else if (Matches("ALTER", "TABLE", MatchAny,
    "ALTER|DROP|RENAME", "CONSTRAINT", MatchAny, "NOT"))
    +       {
    +               COMPLETE_WITH("DEFERRABLE", "ENFORCED");
    +       }
            /* ALTER TABLE <sth> VALIDATE CONSTRAINT <non-validated constraint> */
            else if (Matches("ALTER", "TABLE", MatchAny, "VALIDATE", "CONSTRAINT"))
            {
    
    
    -- 
    Best regards,
    Kirill Reshke