Commit 130d94a7 authored by Andres Freund's avatar Andres Freund

Fix tab completion for ALTER ... TABLESPACE ... OWNED BY.

Previously the completion used the wrong word to match 'BY'. This was
introduced brokenly, in b2de2a. While at it, also add completion of
IN TABLESPACE ... OWNED BY and fix comments referencing nonexistent
syntax.

Reported-By: Michael Paquier
Author: Michael Paquier and Andres Freund
Discussion: CAB7nPqSHDdSwsJqX0d2XzjqOHr==HdWiubCi4L=Zs7YFTUne8w@mail.gmail.com
Backpatch: 9.4, like the commit introducing the bug
parent bbbd8070
...@@ -1025,7 +1025,7 @@ psql_completion(const char *text, int start, int end) ...@@ -1025,7 +1025,7 @@ psql_completion(const char *text, int start, int end)
COMPLETE_WITH_LIST(list_ALTER); COMPLETE_WITH_LIST(list_ALTER);
} }
/* ALTER TABLE,INDEX,MATERIALIZED VIEW xxx ALL IN TABLESPACE xxx */ /* ALTER TABLE,INDEX,MATERIALIZED VIEW ALL IN TABLESPACE xxx */
else if (pg_strcasecmp(prev4_wd, "ALL") == 0 && else if (pg_strcasecmp(prev4_wd, "ALL") == 0 &&
pg_strcasecmp(prev3_wd, "IN") == 0 && pg_strcasecmp(prev3_wd, "IN") == 0 &&
pg_strcasecmp(prev2_wd, "TABLESPACE") == 0) pg_strcasecmp(prev2_wd, "TABLESPACE") == 0)
...@@ -1035,15 +1035,23 @@ psql_completion(const char *text, int start, int end) ...@@ -1035,15 +1035,23 @@ psql_completion(const char *text, int start, int end)
COMPLETE_WITH_LIST(list_ALTERALLINTSPC); COMPLETE_WITH_LIST(list_ALTERALLINTSPC);
} }
/* ALTER TABLE,INDEX,MATERIALIZED VIEW xxx ALL IN TABLESPACE xxx OWNED BY */ /* ALTER TABLE,INDEX,MATERIALIZED VIEW ALL IN TABLESPACE xxx OWNED BY */
else if (pg_strcasecmp(prev6_wd, "ALL") == 0 && else if (pg_strcasecmp(prev6_wd, "ALL") == 0 &&
pg_strcasecmp(prev5_wd, "IN") == 0 && pg_strcasecmp(prev5_wd, "IN") == 0 &&
pg_strcasecmp(prev4_wd, "TABLESPACE") == 0 && pg_strcasecmp(prev4_wd, "TABLESPACE") == 0 &&
pg_strcasecmp(prev2_wd, "OWNED") == 0 && pg_strcasecmp(prev2_wd, "OWNED") == 0 &&
pg_strcasecmp(prev4_wd, "BY") == 0) pg_strcasecmp(prev_wd, "BY") == 0)
{ {
COMPLETE_WITH_QUERY(Query_for_list_of_roles); COMPLETE_WITH_QUERY(Query_for_list_of_roles);
} }
/* ALTER TABLE,INDEX,MATERIALIZED VIEW ALL IN TABLESPACE xxx OWNED BY xxx */
else if (pg_strcasecmp(prev6_wd, "IN") == 0 &&
pg_strcasecmp(prev5_wd, "TABLESPACE") == 0 &&
pg_strcasecmp(prev3_wd, "OWNED") == 0 &&
pg_strcasecmp(prev2_wd, "BY") == 0)
{
COMPLETE_WITH_CONST("SET TABLESPACE");
}
/* ALTER AGGREGATE,FUNCTION <name> */ /* ALTER AGGREGATE,FUNCTION <name> */
else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 && else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 &&
(pg_strcasecmp(prev2_wd, "AGGREGATE") == 0 || (pg_strcasecmp(prev2_wd, "AGGREGATE") == 0 ||
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment