Hi Christoph,

Thanks for the patch! I just tested it and I could reproduce the expected behaviour in these cases:

postgres=# CREATE VIEW w
AS      WITH (

postgres=# CREATE OR REPLACE VIEW w
AS      WITH (

postgres=# CREATE VIEW w WITH (
CHECK_OPTION      SECURITY_BARRIER  SECURITY_INVOKER

postgres=# CREATE OR REPLACE VIEW w WITH (
CHECK_OPTION      SECURITY_BARRIER  SECURITY_INVOKER

postgres=# ALTER VIEW w
ALTER COLUMN  OWNER TO      RENAME        RESET (       SET (         SET SCHEMA

postgres=# ALTER VIEW w RESET (
CHECK_OPTION      SECURITY_BARRIER  SECURITY_INVOKER

postgres=# ALTER VIEW w SET (check_option =
CASCADED  LOCAL

However, an "ALTER TABLE <name> S<tab>" does not complete the open parenthesis "(" from "SET (", as suggested in "ALTER VIEW <name> <tab>".

postgres=# ALTER VIEW w SET
Display all 187 possibilities? (y or n)

Is it intended to behave like this? If so, an "ALTER VIEW <name> RES<tab>" does complete the open parenthesis -> "RESET (".

Best,
Jim

On 09.12.22 11:31, Christoph Heiss wrote:
Thanks for the review!

On 12/8/22 12:19, Melih Mutlu wrote:
Hi Christoph,

I just took a quick look at your patch.
Some suggestions:

    +   else if (Matches("ALTER", "VIEW", MatchAny, "SET", "("))
    +       COMPLETE_WITH_LIST(view_optional_parameters);
    +   /* ALTER VIEW xxx RESET ( yyy , ... ) */
    +   else if (Matches("ALTER", "VIEW", MatchAny, "RESET", "("))
    +       COMPLETE_WITH_LIST(view_optional_parameters);


What about combining these two cases into one like Matches("ALTER", "VIEW", MatchAny, "SET|RESET", "(") ?
Good thinking, incorporated that into v2.
While at it, I also added completion for the values of the SET parameters, since that is useful as well.


         /* ALTER VIEW <name> */
         else if (Matches("ALTER", "VIEW", MatchAny))
             COMPLETE_WITH("ALTER COLUMN", "OWNER TO", "RENAME",
                           "SET SCHEMA");


Also seems like SET and RESET don't get auto-completed for "ALTER VIEW <name>".
I think it would be nice to include those missing words.
That is already contained in the patch:

@@ -2139,7 +2146,7 @@ psql_completion(const char *text, int start, int end)
     /* ALTER VIEW <name> */
     else if (Matches("ALTER", "VIEW", MatchAny))
         COMPLETE_WITH("ALTER COLUMN", "OWNER TO", "RENAME",
-                      "SET SCHEMA");
+                      "SET SCHEMA", "SET (", "RESET (");

Thanks,
Christoph

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to