@ -2353,6 +2353,7 @@ psql_completion(const char *text, int start, int end)
" OWNER TO " , " SET " , " VALIDATE CONSTRAINT " ,
" REPLICA IDENTITY " , " ATTACH PARTITION " ,
" DETACH PARTITION " , " FORCE ROW LEVEL SECURITY " ,
" SPLIT PARTITION " , " MERGE PARTITIONS ( " ,
" OF " , " NOT OF " ) ;
/* ALTER TABLE xxx ADD */
else if ( Matches ( " ALTER " , " TABLE " , MatchAny , " ADD " ) )
@ -2609,10 +2610,10 @@ psql_completion(const char *text, int start, int end)
COMPLETE_WITH ( " FROM ( " , " IN ( " , " WITH ( " ) ;
/*
* If we have ALTER TABLE < foo > DETACH PARTITION , provide a list of
* If we have ALTER TABLE < foo > DETACH | SPLIT PARTITION , provide a list of
* partitions of < foo > .
*/
else if ( Matches ( " ALTER " , " TABLE " , MatchAny , " DETACH " , " PARTITION " ) )
else if ( Matches ( " ALTER " , " TABLE " , MatchAny , " DETACH|SPLIT " , " PARTITION " ) )
{
set_completion_reference ( prev3_wd ) ;
COMPLETE_WITH_SCHEMA_QUERY ( Query_for_partition_of_table ) ;
@ -2620,6 +2621,19 @@ psql_completion(const char *text, int start, int end)
else if ( Matches ( " ALTER " , " TABLE " , MatchAny , " DETACH " , " PARTITION " , MatchAny ) )
COMPLETE_WITH ( " CONCURRENTLY " , " FINALIZE " ) ;
/* ALTER TABLE <name> SPLIT PARTITION <name> */
else if ( Matches ( " ALTER " , " TABLE " , MatchAny , " SPLIT " , " PARTITION " , MatchAny ) )
COMPLETE_WITH ( " INTO ( PARTITION " ) ;
/* ALTER TABLE <name> MERGE PARTITIONS ( */
else if ( Matches ( " ALTER " , " TABLE " , MatchAny , " MERGE " , " PARTITIONS " , " ( " ) )
{
set_completion_reference ( prev4_wd ) ;
COMPLETE_WITH_SCHEMA_QUERY ( Query_for_partition_of_table ) ;
}
else if ( Matches ( " ALTER " , " TABLE " , MatchAny , " MERGE " , " PARTITIONS " , " (*) " ) )
COMPLETE_WITH ( " INTO " ) ;
/* ALTER TABLE <name> OF */
else if ( Matches ( " ALTER " , " TABLE " , MatchAny , " OF " ) )
COMPLETE_WITH_SCHEMA_QUERY ( Query_for_list_of_composite_datatypes ) ;