From a73efb43cdc3579161bd291ac09334601bc4e9e6 Mon Sep 17 00:00:00 2001 From: chenson42 Date: Fri, 30 Nov 2012 20:56:13 +0000 Subject: [PATCH] 0000936: Oracle integer datatype has a larger precision than the java Integer datatype. --- .../org/jumpmind/db/platform/AbstractDatabasePlatform.java | 7 +++---- .../java/org/jumpmind/db/platform/IDatabasePlatform.java | 5 ++++- .../org/jumpmind/db/platform/db2/Db2DatabasePlatform.java | 5 ----- .../db/platform/oracle/OracleDatabasePlatform.java | 7 +++++++ 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java index b7d959a81e..71d78cf331 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java @@ -25,7 +25,6 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.math.BigDecimal; -import java.math.BigInteger; import java.sql.Array; import java.sql.Timestamp; import java.sql.Types; @@ -392,11 +391,11 @@ public Object[] getObjectValues(BinaryEncoding encoding, String[] values, return null; } } - + protected Number parseIntegerObjectValue(String value) { - return new BigInteger(value); + return Integer.parseInt(value); } - + // TODO: this should be AbstractDdlBuilder.getInsertSql(Table table, // Map columnValues, boolean genPlaceholders) public String[] getStringValues(BinaryEncoding encoding, Column[] metaData, Row row, diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/IDatabasePlatform.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/IDatabasePlatform.java index 9ddfedcb18..1196691a2f 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/IDatabasePlatform.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/IDatabasePlatform.java @@ -96,12 +96,15 @@ public Table getTableFromCache(String catalogName, String schemaName, String tab public void createDatabase(Database targetDatabase, boolean dropTablesFirst, boolean continueOnError); + + public void createTables(boolean dropTablesFirst, + boolean continueOnError, Table... tables); public void alterDatabase(Database desiredDatabase, boolean continueOnError); public void alterTables(boolean continueOnError, Table... desiredTables); - public void dropDatabase(Database database, boolean continueOnError); + public void dropDatabase(Database database, boolean continueOnError); public DmlStatement createDmlStatement(DmlType dmlType, Table table); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/db2/Db2DatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/db2/Db2DatabasePlatform.java index d185007d3f..f4f9c6e570 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/db2/Db2DatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/db2/Db2DatabasePlatform.java @@ -74,9 +74,4 @@ public String getDefaultCatalog() { return null; } - @Override - protected Number parseIntegerObjectValue(String value) { - return Integer.parseInt(value); - } - } diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/oracle/OracleDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/oracle/OracleDatabasePlatform.java index 3e4ec465c4..d4ff031ffe 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/oracle/OracleDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/oracle/OracleDatabasePlatform.java @@ -19,6 +19,8 @@ * under the License. */ +import java.math.BigInteger; + import javax.sql.DataSource; import org.apache.commons.lang.StringUtils; @@ -76,6 +78,11 @@ protected OracleJdbcSqlTemplate createSqlTemplate() { SymmetricLobHandler symmetricLobHandler = new SymmetricLobHandler(lobHandler); return new OracleJdbcSqlTemplate(dataSource, settings, symmetricLobHandler, getDatabaseInfo()); } + + @Override + protected Number parseIntegerObjectValue(String value) { + return new BigInteger(value); + } public String getName() { return DatabaseNamesConstants.ORACLE;