@@ -931,6 +931,13 @@ psql_completion(const char *text, int start, int end)
931
931
932
932
/* ALTER */
933
933
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
+ }
934
941
/*
935
942
* complete with what you can alter (TABLE, GROUP, USER, ...) unless we're
936
943
* in ALTER TABLE sth ALTER
@@ -948,6 +955,25 @@ psql_completion(const char *text, int start, int end)
948
955
949
956
COMPLETE_WITH_LIST (list_ALTER );
950
957
}
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
+ }
951
977
/* ALTER AGGREGATE,FUNCTION <name> */
952
978
else if (pg_strcasecmp (prev3_wd , "ALTER" ) == 0 &&
953
979
(pg_strcasecmp (prev2_wd , "AGGREGATE" ) == 0 ||
@@ -1083,6 +1109,13 @@ psql_completion(const char *text, int start, int end)
1083
1109
COMPLETE_WITH_LIST (list_ALTER_FOREIGN_TABLE );
1084
1110
}
1085
1111
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
+ }
1086
1119
/* ALTER INDEX <name> */
1087
1120
else if (pg_strcasecmp (prev3_wd , "ALTER" ) == 0 &&
1088
1121
pg_strcasecmp (prev2_wd , "INDEX" ) == 0 )
@@ -1146,7 +1179,8 @@ psql_completion(const char *text, int start, int end)
1146
1179
pg_strcasecmp (prev2_wd , "MATERIALIZED" ) == 0 &&
1147
1180
pg_strcasecmp (prev_wd , "VIEW" ) == 0 )
1148
1181
{
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'" );
1150
1184
}
1151
1185
1152
1186
/* ALTER USER,ROLE <name> */
@@ -1667,12 +1701,12 @@ psql_completion(const char *text, int start, int end)
1667
1701
COMPLETE_WITH_CONST ("IDENTITY" );
1668
1702
}
1669
1703
1670
- /* ALTER TABLESPACE <foo> with RENAME TO, OWNER TO, SET, RESET, MOVE */
1704
+ /* ALTER TABLESPACE <foo> with RENAME TO, OWNER TO, SET, RESET */
1671
1705
else if (pg_strcasecmp (prev3_wd , "ALTER" ) == 0 &&
1672
1706
pg_strcasecmp (prev2_wd , "TABLESPACE" ) == 0 )
1673
1707
{
1674
1708
static const char * const list_ALTERTSPC [] =
1675
- {"RENAME TO" , "OWNER TO" , "SET" , "RESET" , "MOVE" , NULL };
1709
+ {"RENAME TO" , "OWNER TO" , "SET" , "RESET" , NULL };
1676
1710
1677
1711
COMPLETE_WITH_LIST (list_ALTERTSPC );
1678
1712
}
@@ -1694,27 +1728,6 @@ psql_completion(const char *text, int start, int end)
1694
1728
1695
1729
COMPLETE_WITH_LIST (list_TABLESPACEOPTIONS );
1696
1730
}
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
- }
1718
1731
1719
1732
/* ALTER TEXT SEARCH */
1720
1733
else if (pg_strcasecmp (prev3_wd , "ALTER" ) == 0 &&
@@ -2669,9 +2682,8 @@ psql_completion(const char *text, int start, int end)
2669
2682
* but we may as well tab-complete both: perhaps some users prefer one
2670
2683
* variant or the other.
2671
2684
*/
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 )
2675
2687
{
2676
2688
static const char * const list_FROMIN [] =
2677
2689
{"FROM" , "IN" , NULL };
0 commit comments