@@ -953,6 +953,13 @@ psql_completion(const char *text, int start, int end)
953
953
954
954
/* ALTER */
955
955
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
+ }
956
963
/*
957
964
* complete with what you can alter (TABLE, GROUP, USER, ...) unless we're
958
965
* in ALTER TABLE sth ALTER
@@ -970,6 +977,25 @@ psql_completion(const char *text, int start, int end)
970
977
971
978
COMPLETE_WITH_LIST (list_ALTER );
972
979
}
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
+ }
973
999
/* ALTER AGGREGATE,FUNCTION <name> */
974
1000
else if (pg_strcasecmp (prev3_wd , "ALTER" ) == 0 &&
975
1001
(pg_strcasecmp (prev2_wd , "AGGREGATE" ) == 0 ||
@@ -1106,6 +1132,13 @@ psql_completion(const char *text, int start, int end)
1106
1132
COMPLETE_WITH_LIST (list_ALTER_FOREIGN_TABLE );
1107
1133
}
1108
1134
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
+ }
1109
1142
/* ALTER INDEX <name> */
1110
1143
else if (pg_strcasecmp (prev3_wd , "ALTER" ) == 0 &&
1111
1144
pg_strcasecmp (prev2_wd , "INDEX" ) == 0 )
@@ -1169,7 +1202,8 @@ psql_completion(const char *text, int start, int end)
1169
1202
pg_strcasecmp (prev2_wd , "MATERIALIZED" ) == 0 &&
1170
1203
pg_strcasecmp (prev_wd , "VIEW" ) == 0 )
1171
1204
{
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'" );
1173
1207
}
1174
1208
1175
1209
/* ALTER USER,ROLE <name> */
@@ -1749,12 +1783,12 @@ psql_completion(const char *text, int start, int end)
1749
1783
COMPLETE_WITH_CONST ("IDENTITY" );
1750
1784
}
1751
1785
1752
- /* ALTER TABLESPACE <foo> with RENAME TO, OWNER TO, SET, RESET, MOVE */
1786
+ /* ALTER TABLESPACE <foo> with RENAME TO, OWNER TO, SET, RESET */
1753
1787
else if (pg_strcasecmp (prev3_wd , "ALTER" ) == 0 &&
1754
1788
pg_strcasecmp (prev2_wd , "TABLESPACE" ) == 0 )
1755
1789
{
1756
1790
static const char * const list_ALTERTSPC [] =
1757
- {"RENAME TO" , "OWNER TO" , "SET" , "RESET" , "MOVE" , NULL };
1791
+ {"RENAME TO" , "OWNER TO" , "SET" , "RESET" , NULL };
1758
1792
1759
1793
COMPLETE_WITH_LIST (list_ALTERTSPC );
1760
1794
}
@@ -1776,27 +1810,6 @@ psql_completion(const char *text, int start, int end)
1776
1810
1777
1811
COMPLETE_WITH_LIST (list_TABLESPACEOPTIONS );
1778
1812
}
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
- }
1800
1813
1801
1814
/* ALTER TEXT SEARCH */
1802
1815
else if (pg_strcasecmp (prev3_wd , "ALTER" ) == 0 &&
@@ -2798,9 +2811,8 @@ psql_completion(const char *text, int start, int end)
2798
2811
* but we may as well tab-complete both: perhaps some users prefer one
2799
2812
* variant or the other.
2800
2813
*/
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 )
2804
2816
{
2805
2817
static const char * const list_FROMIN [] =
2806
2818
{"FROM" , "IN" , NULL };
0 commit comments