From f69b1811b49be56326f47b0100c8da648112b45d Mon Sep 17 00:00:00 2001 From: Chris Cranford Date: Tue, 15 Feb 2022 08:56:21 -0500 Subject: [PATCH] DBZ-4746 Support `CHECK` shrink-clause option --- .../io/debezium/ddl/parser/oracle/generated/PlSqlParser.g4 | 4 +++- .../src/test/resources/oracle/examples/ddl_alter.sql | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/oracle/generated/PlSqlParser.g4 b/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/oracle/generated/PlSqlParser.g4 index f0b8a297d..f898ecf93 100644 --- a/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/oracle/generated/PlSqlParser.g4 +++ b/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/oracle/generated/PlSqlParser.g4 @@ -2225,7 +2225,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 diff --git a/debezium-ddl-parser/src/test/resources/oracle/examples/ddl_alter.sql b/debezium-ddl-parser/src/test/resources/oracle/examples/ddl_alter.sql index d9cd028c8..4f7831130 100644 --- a/debezium-ddl-parser/src/test/resources/oracle/examples/ddl_alter.sql +++ b/debezium-ddl-parser/src/test/resources/oracle/examples/ddl_alter.sql @@ -38,4 +38,6 @@ ALTER TABLE SYSTEM.LOGMNR_KOPM$ MODIFY PARTITION P137 REBUILD UNUSABLE LOCAL IND ALTER TABLE TABLE_DATA_CHANGE_LOG MODIFY PARTITION PART_LOAN_CARDS_DEMAND_DEPOSITION ADD SUBPARTITION SUBPART_LOAN_CARDS_DEMAND_DEPOSITION_20220301 VALUES LESS THAN (30); ALTER TABLE B.EXCHANGE_LOG DROP PARTITION FOR (TIMESTAMP '2022-01-28 00:00:00') UPDATE GLOBAL INDEXES ; -- Virtual column support -ALTER TABLE VIDEO ADD (sql_code_injection_check NUMBER GENERATED ALWAYS AS (sdd_avoid_sql_injection(SKRIPT)) VIRTUAL); \ No newline at end of file +ALTER TABLE VIDEO ADD (sql_code_injection_check NUMBER GENERATED ALWAYS AS (sdd_avoid_sql_injection(SKRIPT)) VIRTUAL); +-- Shrink Space +ALTER TABLE "ODS_XMES_QY"."ORDER_ITEM" shrink space CHECK; \ No newline at end of file