Thread
-
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