diff --git a/sql/plsql/PlSqlParser.g4 b/sql/plsql/PlSqlParser.g4 index d0ba1fd0e1..6b988a080e 100644 --- a/sql/plsql/PlSqlParser.g4 +++ b/sql/plsql/PlSqlParser.g4 @@ -4006,7 +4006,9 @@ deallocate_unused_clause ; shrink_clause - : SHRINK SPACE_KEYWORD COMPACT? CASCADE? + // CHECK is an internal Oracle option + // It is used to check for proper segment type and segment attributes to allow shrink + : SHRINK SPACE_KEYWORD (COMPACT | CASCADE | CHECK)? ; records_per_block_clause @@ -4792,7 +4794,7 @@ merge_table_partition modify_table_partition : MODIFY ( - PARTITION partition_name ((ADD | DROP) list_values_clause)? (ADD range_subpartition_desc)? ( + (PARTITION | SUBPARTITION) partition_name ((ADD | DROP) list_values_clause)? (ADD range_subpartition_desc)? ( REBUILD? UNUSABLE LOCAL INDEXES )? shrink_clause? | range_partitions diff --git a/sql/plsql/examples/alter_table.sql b/sql/plsql/examples/alter_table.sql index ee700fd693..28744fc3c4 100644 --- a/sql/plsql/examples/alter_table.sql +++ b/sql/plsql/examples/alter_table.sql @@ -212,3 +212,5 @@ UPDATE INDEXES (COST_IX (PARTITION C_P1 TABLESPACE TBS_02, PARTITION C_P2 TABLES ALTER TABLE "AB01"."SMOSTAMM" ADD CONSTRAINT "CC_SMOSTAMM_KRAB" CHECK ((KRAB >= 0. ) AND (KRAB <= 100. )) ENABLE; ALTER TABLE "ME_CARRIER_HISTORY" ADD CONSTRAINT "CHECK_COMM_TYPE" CHECK (communication_type in('EDI','NON-EDI','API')) NOVALIDATE PARALLEL; + +ALTER TABLE NAV.SPAC_AUT_APOLICE MODIFY SUBPARTITION P12345 SHRINK SPACE CHECK;