From 556886b522fb08303df4fcf016ea5ff8ebcf538a Mon Sep 17 00:00:00 2001 From: Chris Cranford Date: Mon, 22 Feb 2021 01:19:55 -0500 Subject: [PATCH] DBZ-3151 Use pattern for SYS_NC_OID$, SYS_NC_ROWINFO$, and SYS_NCnnnnn$ names --- .../io/debezium/connector/oracle/OracleConnection.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/OracleConnection.java b/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/OracleConnection.java index 02718cc61..07b29482a 100644 --- a/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/OracleConnection.java +++ b/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/OracleConnection.java @@ -20,6 +20,7 @@ import java.util.Map; import java.util.Set; import java.util.function.Supplier; +import java.util.regex.Pattern; import java.util.stream.Collectors; import org.slf4j.Logger; @@ -48,7 +49,10 @@ public class OracleConnection extends JdbcConnection { */ private static final int ORACLE_UNSET_SCALE = -127; - private static final String SYS_NC_OID_COLUMN = "SYS_NC_OID$"; + /** + * Pattern to identify system generated indices and column names. + */ + private static final Pattern SYS_NC_PATTERN = Pattern.compile("^SYS_NC(?:_OID|_ROWINFO|[0-9][0-9][0-9][0-9][0-9])\\$$"); /** * A field for the raw jdbc url. This field has no default value. @@ -297,7 +301,7 @@ public List readTableUniqueIndices(DatabaseMetaData metadata, TableId id @Override protected boolean isTableUniqueIndexIncluded(String indexName, String columnName) { - return !SYS_NC_OID_COLUMN.equals(columnName); + return !SYS_NC_PATTERN.matcher(columnName).matches(); } private void overrideOracleSpecificColumnTypes(Tables tables, TableId tableId, TableId tableIdWithCatalog) {