Add tab-complete for ALTER DOMAIN ADD [CONSTRAINT]
authorÁlvaro Herrera <alvherre@kurilemu.de>
Sun, 11 May 2025 14:16:45 +0000 (10:16 -0400)
committerÁlvaro Herrera <alvherre@kurilemu.de>
Sun, 11 May 2025 14:16:45 +0000 (10:16 -0400)
We can add tab-completion with "CHECK (" and "NOT NULL" after ALTER
DOMAIN ADD [CONSTRAINT].

ALTER DOMAIN dom ADD -> CHECK (
ALTER DOMAIN dom ADD -> NOT NULL
ALTER DOMAIN dom ADD -> CONSTRAINT
ALTER DOMAIN dom ADD CONSTRAINT nm -> CHECK (
ALTER DOMAIN dom ADD CONSTRAINT nm -> NOT NULL

Author: jian he <jian.universality@gmail.com>
Author: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Discussion: https://postgr.es/m/CACJufxG_f6LzAT_McC-kKmQWpuWnOYKyNBw8Kv3xzTjPqmeHcA@mail.gmail.com

src/bin/psql/tab-complete.in.c

index c916b9299a80e94c713832fe1bf84466f2314ed6..ec65ab79fecba7c8b05a46d30b3da679ecd8c5a8 100644 (file)
@@ -2539,6 +2539,12 @@ match_previous_words(int pattern_id,
    else if (Matches("ALTER", "DOMAIN", MatchAny))
        COMPLETE_WITH("ADD", "DROP", "OWNER TO", "RENAME", "SET",
                      "VALIDATE CONSTRAINT");
+   /* ALTER DOMAIN <sth> ADD */
+   else if (Matches("ALTER", "DOMAIN", MatchAny, "ADD"))
+       COMPLETE_WITH("CONSTRAINT", "NOT NULL", "CHECK (");
+   /* ALTER DOMAIN <sth> ADD CONSTRAINT <sth> */
+   else if (Matches("ALTER", "DOMAIN", MatchAny, "ADD", "CONSTRAINT", MatchAny))
+       COMPLETE_WITH("NOT NULL", "CHECK (");
    /* ALTER DOMAIN <sth> DROP */
    else if (Matches("ALTER", "DOMAIN", MatchAny, "DROP"))
        COMPLETE_WITH("CONSTRAINT", "DEFAULT", "NOT NULL");