Skip to content

Commit 4231599

Browse files
committed
Tab completion for ALTER .. ALL IN TABLESPACE
Update the tab completion for the changes made in 3c4cf08, which rework 'MOVE ALL' to be 'ALTER .. ALL IN TABLESPACE'. Fujii Masao Back-patch to 9.4, as the original change was.
1 parent 31189e8 commit 4231599

File tree

1 file changed

+39
-27
lines changed

1 file changed

+39
-27
lines changed

src/bin/psql/tab-complete.c

Lines changed: 39 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -931,6 +931,13 @@ psql_completion(const char *text, int start, int end)
931931

932932
/* ALTER */
933933

934+
/* ALTER TABLE */
935+
else if (pg_strcasecmp(prev2_wd, "ALTER") == 0 &&
936+
pg_strcasecmp(prev_wd, "TABLE") == 0)
937+
{
938+
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables,
939+
"UNION SELECT 'ALL IN TABLESPACE'");
940+
}
934941
/*
935942
* complete with what you can alter (TABLE, GROUP, USER, ...) unless we're
936943
* in ALTER TABLE sth ALTER
@@ -948,6 +955,25 @@ psql_completion(const char *text, int start, int end)
948955

949956
COMPLETE_WITH_LIST(list_ALTER);
950957
}
958+
/* ALTER TABLE,INDEX,MATERIALIZED VIEW xxx ALL IN TABLESPACE xxx */
959+
else if (pg_strcasecmp(prev4_wd, "ALL") == 0 &&
960+
pg_strcasecmp(prev3_wd, "IN") == 0 &&
961+
pg_strcasecmp(prev2_wd, "TABLESPACE") == 0)
962+
{
963+
static const char *const list_ALTERALLINTSPC[] =
964+
{"SET TABLESPACE", "OWNED BY", NULL};
965+
966+
COMPLETE_WITH_LIST(list_ALTERALLINTSPC);
967+
}
968+
/* ALTER TABLE,INDEX,MATERIALIZED VIEW xxx ALL IN TABLESPACE xxx OWNED BY */
969+
else if (pg_strcasecmp(prev6_wd, "ALL") == 0 &&
970+
pg_strcasecmp(prev5_wd, "IN") == 0 &&
971+
pg_strcasecmp(prev4_wd, "TABLESPACE") == 0 &&
972+
pg_strcasecmp(prev2_wd, "OWNED") == 0 &&
973+
pg_strcasecmp(prev4_wd, "BY") == 0)
974+
{
975+
COMPLETE_WITH_QUERY(Query_for_list_of_roles);
976+
}
951977
/* ALTER AGGREGATE,FUNCTION <name> */
952978
else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 &&
953979
(pg_strcasecmp(prev2_wd, "AGGREGATE") == 0 ||
@@ -1083,6 +1109,13 @@ psql_completion(const char *text, int start, int end)
10831109
COMPLETE_WITH_LIST(list_ALTER_FOREIGN_TABLE);
10841110
}
10851111

1112+
/* ALTER INDEX */
1113+
else if (pg_strcasecmp(prev2_wd, "ALTER") == 0 &&
1114+
pg_strcasecmp(prev_wd, "INDEX") == 0)
1115+
{
1116+
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_indexes,
1117+
"UNION SELECT 'ALL IN TABLESPACE'");
1118+
}
10861119
/* ALTER INDEX <name> */
10871120
else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 &&
10881121
pg_strcasecmp(prev2_wd, "INDEX") == 0)
@@ -1146,7 +1179,8 @@ psql_completion(const char *text, int start, int end)
11461179
pg_strcasecmp(prev2_wd, "MATERIALIZED") == 0 &&
11471180
pg_strcasecmp(prev_wd, "VIEW") == 0)
11481181
{
1149-
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_matviews, NULL);
1182+
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_matviews,
1183+
"UNION SELECT 'ALL IN TABLESPACE'");
11501184
}
11511185

11521186
/* ALTER USER,ROLE <name> */
@@ -1667,12 +1701,12 @@ psql_completion(const char *text, int start, int end)
16671701
COMPLETE_WITH_CONST("IDENTITY");
16681702
}
16691703

1670-
/* ALTER TABLESPACE <foo> with RENAME TO, OWNER TO, SET, RESET, MOVE */
1704+
/* ALTER TABLESPACE <foo> with RENAME TO, OWNER TO, SET, RESET */
16711705
else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 &&
16721706
pg_strcasecmp(prev2_wd, "TABLESPACE") == 0)
16731707
{
16741708
static const char *const list_ALTERTSPC[] =
1675-
{"RENAME TO", "OWNER TO", "SET", "RESET", "MOVE", NULL};
1709+
{"RENAME TO", "OWNER TO", "SET", "RESET", NULL};
16761710

16771711
COMPLETE_WITH_LIST(list_ALTERTSPC);
16781712
}
@@ -1694,27 +1728,6 @@ psql_completion(const char *text, int start, int end)
16941728

16951729
COMPLETE_WITH_LIST(list_TABLESPACEOPTIONS);
16961730
}
1697-
/* ALTER TABLESPACE <foo> MOVE ALL|TABLES|INDEXES|MATERIALIZED VIEWS */
1698-
else if (pg_strcasecmp(prev4_wd, "ALTER") == 0 &&
1699-
pg_strcasecmp(prev3_wd, "TABLESPACE") == 0 &&
1700-
pg_strcasecmp(prev_wd, "MOVE") == 0)
1701-
{
1702-
static const char *const list_TABLESPACEMOVETARGETS[] =
1703-
{"ALL", "TABLES", "INDEXES", "MATERIALIZED VIEWS", NULL};
1704-
1705-
COMPLETE_WITH_LIST(list_TABLESPACEMOVETARGETS);
1706-
}
1707-
else if ((pg_strcasecmp(prev4_wd, "TABLESPACE") == 0 &&
1708-
pg_strcasecmp(prev2_wd, "MOVE") == 0) ||
1709-
(pg_strcasecmp(prev5_wd, "TABLESPACE") == 0 &&
1710-
pg_strcasecmp(prev3_wd, "MOVE") == 0 &&
1711-
pg_strcasecmp(prev2_wd, "MATERIALIZED") == 0))
1712-
{
1713-
static const char *const list_TABLESPACEMOVEOPTIONS[] =
1714-
{"OWNED BY", "TO", NULL};
1715-
1716-
COMPLETE_WITH_LIST(list_TABLESPACEMOVEOPTIONS);
1717-
}
17181731

17191732
/* ALTER TEXT SEARCH */
17201733
else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 &&
@@ -2669,9 +2682,8 @@ psql_completion(const char *text, int start, int end)
26692682
* but we may as well tab-complete both: perhaps some users prefer one
26702683
* variant or the other.
26712684
*/
2672-
else if ((pg_strcasecmp(prev3_wd, "FETCH") == 0 ||
2673-
pg_strcasecmp(prev3_wd, "MOVE") == 0) &&
2674-
pg_strcasecmp(prev_wd, "TO") != 0)
2685+
else if (pg_strcasecmp(prev3_wd, "FETCH") == 0 ||
2686+
pg_strcasecmp(prev3_wd, "MOVE") == 0)
26752687
{
26762688
static const char *const list_FROMIN[] =
26772689
{"FROM", "IN", NULL};

0 commit comments

Comments
 (0)