Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit b2de2a1

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 465b52e commit b2de2a1

File tree

1 file changed

+39
-27
lines changed

1 file changed

+39
-27
lines changed

src/bin/psql/tab-complete.c

+39-27
Original file line numberDiff line numberDiff line change
@@ -953,6 +953,13 @@ psql_completion(const char *text, int start, int end)
953953

954954
/* ALTER */
955955

956+
/* ALTER TABLE */
957+
else if (pg_strcasecmp(prev2_wd, "ALTER") == 0 &&
958+
pg_strcasecmp(prev_wd, "TABLE") == 0)
959+
{
960+
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables,
961+
"UNION SELECT 'ALL IN TABLESPACE'");
962+
}
956963
/*
957964
* complete with what you can alter (TABLE, GROUP, USER, ...) unless we're
958965
* in ALTER TABLE sth ALTER
@@ -970,6 +977,25 @@ psql_completion(const char *text, int start, int end)
970977

971978
COMPLETE_WITH_LIST(list_ALTER);
972979
}
980+
/* ALTER TABLE,INDEX,MATERIALIZED VIEW xxx ALL IN TABLESPACE xxx */
981+
else if (pg_strcasecmp(prev4_wd, "ALL") == 0 &&
982+
pg_strcasecmp(prev3_wd, "IN") == 0 &&
983+
pg_strcasecmp(prev2_wd, "TABLESPACE") == 0)
984+
{
985+
static const char *const list_ALTERALLINTSPC[] =
986+
{"SET TABLESPACE", "OWNED BY", NULL};
987+
988+
COMPLETE_WITH_LIST(list_ALTERALLINTSPC);
989+
}
990+
/* ALTER TABLE,INDEX,MATERIALIZED VIEW xxx ALL IN TABLESPACE xxx OWNED BY */
991+
else if (pg_strcasecmp(prev6_wd, "ALL") == 0 &&
992+
pg_strcasecmp(prev5_wd, "IN") == 0 &&
993+
pg_strcasecmp(prev4_wd, "TABLESPACE") == 0 &&
994+
pg_strcasecmp(prev2_wd, "OWNED") == 0 &&
995+
pg_strcasecmp(prev4_wd, "BY") == 0)
996+
{
997+
COMPLETE_WITH_QUERY(Query_for_list_of_roles);
998+
}
973999
/* ALTER AGGREGATE,FUNCTION <name> */
9741000
else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 &&
9751001
(pg_strcasecmp(prev2_wd, "AGGREGATE") == 0 ||
@@ -1106,6 +1132,13 @@ psql_completion(const char *text, int start, int end)
11061132
COMPLETE_WITH_LIST(list_ALTER_FOREIGN_TABLE);
11071133
}
11081134

1135+
/* ALTER INDEX */
1136+
else if (pg_strcasecmp(prev2_wd, "ALTER") == 0 &&
1137+
pg_strcasecmp(prev_wd, "INDEX") == 0)
1138+
{
1139+
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_indexes,
1140+
"UNION SELECT 'ALL IN TABLESPACE'");
1141+
}
11091142
/* ALTER INDEX <name> */
11101143
else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 &&
11111144
pg_strcasecmp(prev2_wd, "INDEX") == 0)
@@ -1169,7 +1202,8 @@ psql_completion(const char *text, int start, int end)
11691202
pg_strcasecmp(prev2_wd, "MATERIALIZED") == 0 &&
11701203
pg_strcasecmp(prev_wd, "VIEW") == 0)
11711204
{
1172-
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_matviews, NULL);
1205+
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_matviews,
1206+
"UNION SELECT 'ALL IN TABLESPACE'");
11731207
}
11741208

11751209
/* ALTER USER,ROLE <name> */
@@ -1749,12 +1783,12 @@ psql_completion(const char *text, int start, int end)
17491783
COMPLETE_WITH_CONST("IDENTITY");
17501784
}
17511785

1752-
/* ALTER TABLESPACE <foo> with RENAME TO, OWNER TO, SET, RESET, MOVE */
1786+
/* ALTER TABLESPACE <foo> with RENAME TO, OWNER TO, SET, RESET */
17531787
else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 &&
17541788
pg_strcasecmp(prev2_wd, "TABLESPACE") == 0)
17551789
{
17561790
static const char *const list_ALTERTSPC[] =
1757-
{"RENAME TO", "OWNER TO", "SET", "RESET", "MOVE", NULL};
1791+
{"RENAME TO", "OWNER TO", "SET", "RESET", NULL};
17581792

17591793
COMPLETE_WITH_LIST(list_ALTERTSPC);
17601794
}
@@ -1776,27 +1810,6 @@ psql_completion(const char *text, int start, int end)
17761810

17771811
COMPLETE_WITH_LIST(list_TABLESPACEOPTIONS);
17781812
}
1779-
/* ALTER TABLESPACE <foo> MOVE ALL|TABLES|INDEXES|MATERIALIZED VIEWS */
1780-
else if (pg_strcasecmp(prev4_wd, "ALTER") == 0 &&
1781-
pg_strcasecmp(prev3_wd, "TABLESPACE") == 0 &&
1782-
pg_strcasecmp(prev_wd, "MOVE") == 0)
1783-
{
1784-
static const char *const list_TABLESPACEMOVETARGETS[] =
1785-
{"ALL", "TABLES", "INDEXES", "MATERIALIZED VIEWS", NULL};
1786-
1787-
COMPLETE_WITH_LIST(list_TABLESPACEMOVETARGETS);
1788-
}
1789-
else if ((pg_strcasecmp(prev4_wd, "TABLESPACE") == 0 &&
1790-
pg_strcasecmp(prev2_wd, "MOVE") == 0) ||
1791-
(pg_strcasecmp(prev5_wd, "TABLESPACE") == 0 &&
1792-
pg_strcasecmp(prev3_wd, "MOVE") == 0 &&
1793-
pg_strcasecmp(prev2_wd, "MATERIALIZED") == 0))
1794-
{
1795-
static const char *const list_TABLESPACEMOVEOPTIONS[] =
1796-
{"OWNED BY", "TO", NULL};
1797-
1798-
COMPLETE_WITH_LIST(list_TABLESPACEMOVEOPTIONS);
1799-
}
18001813

18011814
/* ALTER TEXT SEARCH */
18021815
else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 &&
@@ -2798,9 +2811,8 @@ psql_completion(const char *text, int start, int end)
27982811
* but we may as well tab-complete both: perhaps some users prefer one
27992812
* variant or the other.
28002813
*/
2801-
else if ((pg_strcasecmp(prev3_wd, "FETCH") == 0 ||
2802-
pg_strcasecmp(prev3_wd, "MOVE") == 0) &&
2803-
pg_strcasecmp(prev_wd, "TO") != 0)
2814+
else if (pg_strcasecmp(prev3_wd, "FETCH") == 0 ||
2815+
pg_strcasecmp(prev3_wd, "MOVE") == 0)
28042816
{
28052817
static const char *const list_FROMIN[] =
28062818
{"FROM", "IN", NULL};

0 commit comments

Comments
 (0)