summaryrefslogtreecommitdiff
path: root/src/bin/psql
diff options
context:
space:
mode:
authorAndres Freund2015-12-19 16:37:11 +0000
committerAndres Freund2015-12-19 16:37:11 +0000
commit9f749267c431f93f688c4187437a527a13ac2d8d (patch)
tree4177fca2e6ff8b119316ee053a647bfca314e8fa /src/bin/psql
parentacb6c64f4a3628ea7005b3c492633a71e52c95ff (diff)
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
Diffstat (limited to 'src/bin/psql')
-rw-r--r--src/bin/psql/tab-complete.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 29a7e526c69..cf0160067ab 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -956,7 +956,7 @@ psql_completion(const char *text, int start, int end)
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 &&
pg_strcasecmp(prev3_wd, "IN") == 0 &&
pg_strcasecmp(prev2_wd, "TABLESPACE") == 0)
@@ -966,15 +966,23 @@ psql_completion(const char *text, int start, int end)
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 &&
pg_strcasecmp(prev5_wd, "IN") == 0 &&
pg_strcasecmp(prev4_wd, "TABLESPACE") == 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);
}
+ /* 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> */
else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 &&
(pg_strcasecmp(prev2_wd, "AGGREGATE") == 0 ||