Skip to content

Commit

Permalink
0004903: Oracle bulk loader not being used on Oracle >= 12.2
Browse files Browse the repository at this point in the history
  • Loading branch information
erilong committed Mar 18, 2021
1 parent 1e832ed commit ed9c5aa
Show file tree
Hide file tree
Showing 10 changed files with 14 additions and 12 deletions.
Expand Up @@ -70,7 +70,7 @@ public static void setup() throws Exception {

@Test
public void testInsertBigIntIntoOracleIntField() {
if (getPlatform().getName().equals(DatabaseNamesConstants.ORACLE)) {
if (getPlatform().getName().equals(DatabaseNamesConstants.ORACLE) || getPlatform().getName().equals(DatabaseNamesConstants.ORACLE122)) {
ISymmetricEngine engine = getSymmetricEngine();
IDatabasePlatform platform = engine.getDatabasePlatform();

Expand Down Expand Up @@ -211,7 +211,7 @@ protected boolean createAndFillTimestampWithTimeZoneTable() {
ISymmetricEngine engine = getSymmetricEngine();
IDatabasePlatform platform = engine.getDatabasePlatform();
String dbName = platform.getName();
if (dbName.equals(DatabaseNamesConstants.ORACLE)
if (dbName.equals(DatabaseNamesConstants.ORACLE) || dbName.equals(DatabaseNamesConstants.ORACLE122)
|| dbName.equals(DatabaseNamesConstants.POSTGRESQL)) {
ISqlTemplate template = engine.getSqlTemplate();
try {
Expand Down
Expand Up @@ -54,7 +54,7 @@ public IDataWriter getDataWriter(String sourceNodeId, ISymmetricDialect symmetri
|| DatabaseNamesConstants.MSSQL2016.equals(platformName)) {
return new MsSqlBulkDataLoaderFactory(engine).getDataWriter(sourceNodeId, symmetricDialect, transformWriter,
filters, errorHandlers, conflictSettings, resolvedData);
} else if (DatabaseNamesConstants.ORACLE.equals(platformName)) {
} else if (DatabaseNamesConstants.ORACLE.equals(platformName) || DatabaseNamesConstants.ORACLE122.equals(platformName)) {
return new OracleBulkDataLoaderFactory(engine).getDataWriter(sourceNodeId, symmetricDialect, transformWriter,
filters, errorHandlers, conflictSettings, resolvedData);
} else if (DatabaseNamesConstants.TIBERO.equals(platformName)) {
Expand Down
Expand Up @@ -88,7 +88,7 @@ public IDataWriter getDataWriter(String sourceNodeId, ISymmetricDialect symmetri
}

public boolean isPlatformSupported(IDatabasePlatform platform) {
return DatabaseNamesConstants.ORACLE.equals(platform.getName());
return DatabaseNamesConstants.ORACLE.equals(platform.getName()) || DatabaseNamesConstants.ORACLE122.equals(platform.getName());
}

}
Expand Up @@ -300,7 +300,7 @@ public void test10DisableTriggers() throws Exception {
@Test
public void test11BinaryColumnTypesForOracle() {
ISymmetricDialect dialect = getDbDialect();
if (DatabaseNamesConstants.ORACLE.equals(dialect.getName())) {
if (DatabaseNamesConstants.ORACLE.equals(dialect.getName()) || DatabaseNamesConstants.ORACLE122.equals(dialect.getName())) {
getSqlTemplate().update(CREATE_ORACLE_BINARY_TYPE);
TriggerRouter trouter = new TriggerRouter();
Trigger trigger = trouter.getTrigger();
Expand Down Expand Up @@ -411,6 +411,7 @@ public static int insert(Object[] values, ISqlTemplate jdbcTemplate, ISymmetricD

protected static boolean isBooleanSupported(ISymmetricDialect dbDialect) {
return !(DatabaseNamesConstants.ORACLE.equals(dbDialect.getPlatform().getName())
|| DatabaseNamesConstants.ORACLE122.equals(dbDialect.getPlatform().getName())
|| DatabaseNamesConstants.DB2.equals(dbDialect.getPlatform().getName())
|| DatabaseNamesConstants.SQLANYWHERE.equals(dbDialect.getPlatform().getName()));
}
Expand Down
Expand Up @@ -492,7 +492,7 @@ public static boolean isOracle(Column column) {
Collection<PlatformColumn> platformColumns = column.getPlatformColumns()
.values();
for(PlatformColumn col: platformColumns) {
if(col.getName().equals(DatabaseNamesConstants.ORACLE)) {
if(col.getName().equals(DatabaseNamesConstants.ORACLE) || col.getName().equals(DatabaseNamesConstants.ORACLE122)) {
return true;
}
}
Expand Down
Expand Up @@ -64,7 +64,7 @@ public static DmlStatement createDmlStatement(String databaseName, DmlType dmlTy
public static DmlStatement createDmlStatement(String databaseName, DmlType dmlType,
String catalogName, String schemaName, String tableName, Column[] keys,
Column[] columns, boolean[] nullKeyValues, IDdlBuilder ddlBuilder, String textColumnExpression) {
if (DatabaseNamesConstants.ORACLE.equals(databaseName)) {
if (DatabaseNamesConstants.ORACLE.equals(databaseName) || DatabaseNamesConstants.ORACLE122.equals(databaseName)) {
return new OracleDmlStatement(dmlType, catalogName, schemaName, tableName, keys,
columns, nullKeyValues, ddlBuilder.getDatabaseInfo(),
ddlBuilder.isDelimitedIdentifierModeOn(), textColumnExpression);
Expand Down
Expand Up @@ -334,7 +334,7 @@ protected String printDatabase() {
}

protected boolean isOracle() {
return DatabaseNamesConstants.ORACLE.equals(platform.getName());
return DatabaseNamesConstants.ORACLE.equals(platform.getName()) || DatabaseNamesConstants.ORACLE122.equals(platform.getName());
}

public void setErrorExpected(boolean errorExpected) {
Expand Down
Expand Up @@ -275,7 +275,7 @@ public void testUpgradePrimaryKeyAutoIncrementFromIntToBigInt() throws Exception
}

protected String getSequenceName(IDatabasePlatform platform) {
if (platform.getName().equals(DatabaseNamesConstants.ORACLE)) {
if (platform.getName().equals(DatabaseNamesConstants.ORACLE) || platform.getName().equals(DatabaseNamesConstants.ORACLE122)) {
return "TEST_UPGRADE_ID";
} else if (platform.getName().equals(DatabaseNamesConstants.INTERBASE)) {
return "SEQ_TEST_UPGRADE_ID";
Expand Down
Expand Up @@ -151,7 +151,8 @@ public void makePlatformSpecific(Database database) {
for (Column column : table.getColumns()) {
try {
if (column.getMappedTypeCode() == Types.DATE
&& column.findPlatformColumn(DatabaseNamesConstants.ORACLE) != null) {
&& column.findPlatformColumn(DatabaseNamesConstants.ORACLE) != null
&& column.findPlatformColumn(DatabaseNamesConstants.ORACLE122) != null) {
column.setMappedType(TypeMap.TIMESTAMP);
column.setMappedTypeCode(Types.TIMESTAMP);
column.setScale(6);
Expand Down
Expand Up @@ -200,8 +200,8 @@ protected String printRootAndClientDatabases() {
}

protected boolean isServerOracle() {
return DatabaseNamesConstants.ORACLE.equals(getServer().getSymmetricDialect().getPlatform()
.getName());
return DatabaseNamesConstants.ORACLE.equals(getServer().getSymmetricDialect().getPlatform().getName()) ||
DatabaseNamesConstants.ORACLE122.equals(getServer().getSymmetricDialect().getPlatform().getName());
}

protected boolean isClientInterbase() {
Expand Down

0 comments on commit ed9c5aa

Please sign in to comment.