You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-dev@db.apache.org by to...@apache.org on 2008/02/25 03:18:05 UTC
svn commit: r630717 [1/3] - in /db/ddlutils/trunk/src:
java/org/apache/ddlutils/alteration/ java/org/apache/ddlutils/dynabean/
java/org/apache/ddlutils/io/ java/org/apache/ddlutils/io/converters/
java/org/apache/ddlutils/model/ java/org/apache/ddlutils...
Author: tomdz
Date: Sun Feb 24 18:17:57 2008
New Revision: 630717
URL: http://svn.apache.org/viewvc?rev=630717&view=rev
Log:
Fixed issues reported by FindBugs
Implementation of DDLUTILS-194: Make Java 1.4 (JDBC 3) required for DdlUtils
Added:
db/ddlutils/trunk/src/java/org/apache/ddlutils/util/StringUtilsExt.java
- copied, changed from r630531, db/ddlutils/trunk/src/java/org/apache/ddlutils/util/StringUtils.java
Removed:
db/ddlutils/trunk/src/java/org/apache/ddlutils/util/Jdbc3Utils.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/util/MultiInstanceofPredicate.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/util/StringUtils.java
Modified:
db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/AddPrimaryKeyChange.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ColumnDefinitionChange.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/PrimaryKeyChange.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/dynabean/SqlDynaClass.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/io/ConverterConfiguration.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/io/converters/NumberConverter.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Column.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/model/ForeignKey.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Index.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/model/IndexImplBase.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/model/NonUniqueIndex.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/model/TypeMap.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/model/UniqueIndex.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/DatabaseMetaDataWrapper.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/DefaultValueHelper.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/JdbcModelReader.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/axion/AxionPlatform.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/cloudscape/CloudscapePlatform.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/db2/Db2Builder.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/db2/Db2ModelReader.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/db2/Db2Platform.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/derby/DerbyBuilder.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/firebird/FirebirdBuilder.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/firebird/FirebirdModelReader.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/firebird/FirebirdPlatform.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/hsqldb/HsqlDbPlatform.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/interbase/InterbaseBuilder.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/interbase/InterbaseModelReader.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/interbase/InterbasePlatform.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mckoi/MckoiModelReader.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mckoi/MckoiPlatform.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mssql/MSSqlBuilder.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mssql/MSSqlModelComparator.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mssql/MSSqlModelReader.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mssql/MSSqlPlatform.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mysql/MySqlBuilder.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mysql/MySqlModelComparator.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mysql/MySqlPlatform.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle10ModelReader.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle8Builder.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle8ModelReader.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/oracle/Oracle8Platform.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/postgresql/PostgreSqlPlatform.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sapdb/SapDbPlatform.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sybase/SybaseBuilder.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sybase/SybaseModelReader.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sybase/SybasePlatform.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/task/DatabaseTaskBase.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/task/VerbosityLevel.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/TestPlatformBase.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/TestSummaryCreatorTask.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestAxionPlatform.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestCloudscapePlatform.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestDB2Platform.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestDerbyPlatform.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestFirebirdPlatform.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestHsqlDbPlatform.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestInterbasePlatform.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestMSSqlPlatform.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestMaxDbPlatform.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestMcKoiPlatform.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestMySql50Platform.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestMySqlPlatform.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestOracle8Platform.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestOracle9Platform.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestPlatformImplBase.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestPostgresqlPlatform.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestSapDbPlatform.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestSybasePlatform.java
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/AddPrimaryKeyChange.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/AddPrimaryKeyChange.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/AddPrimaryKeyChange.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/AddPrimaryKeyChange.java Sun Feb 24 18:17:57 2008
@@ -42,7 +42,16 @@
public AddPrimaryKeyChange(String tableName, String[] primaryKeyColumns)
{
super(tableName);
- _primaryKeyColumns = primaryKeyColumns;
+ if (primaryKeyColumns == null)
+ {
+ _primaryKeyColumns = new String[0];
+ }
+ else
+ {
+ _primaryKeyColumns = new String[primaryKeyColumns.length];
+
+ System.arraycopy(primaryKeyColumns, 0, _primaryKeyColumns, 0, primaryKeyColumns.length);
+ }
}
/**
@@ -52,7 +61,10 @@
*/
public String[] getPrimaryKeyColumns()
{
- return _primaryKeyColumns;
+ String[] result = new String[_primaryKeyColumns.length];
+
+ System.arraycopy(_primaryKeyColumns, 0, result, 0, _primaryKeyColumns.length);
+ return result;
}
/**
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ColumnDefinitionChange.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ColumnDefinitionChange.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ColumnDefinitionChange.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ColumnDefinitionChange.java Sun Feb 24 18:17:57 2008
@@ -22,7 +22,7 @@
import org.apache.ddlutils.PlatformInfo;
import org.apache.ddlutils.model.Column;
import org.apache.ddlutils.model.Database;
-import org.apache.ddlutils.util.StringUtils;
+import org.apache.ddlutils.util.StringUtilsExt;
/**
* Represents the change of one or more aspects of the definition of a column, such as
@@ -108,7 +108,7 @@
boolean sizeMatters = platformInfo.hasSize(targetTypeCode);
boolean scaleMatters = platformInfo.hasPrecisionAndScale(targetTypeCode);
- if (sizeMatters && !StringUtils.equals(sourceColumn.getSize(), targetColumn.getSize()))
+ if (sizeMatters && !StringUtilsExt.equals(sourceColumn.getSize(), targetColumn.getSize()))
{
return true;
}
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/ModelComparator.java Sun Feb 24 18:17:57 2008
@@ -32,7 +32,7 @@
import org.apache.ddlutils.model.ForeignKey;
import org.apache.ddlutils.model.Index;
import org.apache.ddlutils.model.Table;
-import org.apache.ddlutils.util.StringUtils;
+import org.apache.ddlutils.util.StringUtilsExt;
/**
* Compares two database models and creates change objects that express how to
@@ -239,15 +239,13 @@
{
Table targetTable = targetModel.getTable(tableIdx);
Table intermediateTable = intermediateModel.findTable(targetTable.getName(), _caseSensitive);
- Table sourceTable = sourceModel.findTable(targetTable.getName(), _caseSensitive);
for (int fkIdx = 0; fkIdx < targetTable.getForeignKeyCount(); fkIdx++)
{
ForeignKey targetFk = targetTable.getForeignKey(fkIdx);
ForeignKey intermediateFk = findCorrespondingForeignKey(intermediateTable, targetFk);
- ForeignKey sourceFk = sourceTable == null ? null : findCorrespondingForeignKey(sourceTable, targetFk);
- if ((sourceFk == null) && (intermediateFk == null))
+ if (intermediateFk == null)
{
if (_log.isInfoEnabled())
{
@@ -791,7 +789,7 @@
{
for (int pkColumnIdx = 0; (pkColumnIdx < curPK.length) && !changePK; pkColumnIdx++)
{
- if (!StringUtils.equals(curPK[pkColumnIdx].getName(), targetPK[pkColumnIdx].getName(), _caseSensitive))
+ if (!StringUtilsExt.equals(curPK[pkColumnIdx].getName(), targetPK[pkColumnIdx].getName(), _caseSensitive))
{
changePK = true;
}
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/PrimaryKeyChange.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/PrimaryKeyChange.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/PrimaryKeyChange.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/alteration/PrimaryKeyChange.java Sun Feb 24 18:17:57 2008
@@ -42,7 +42,16 @@
public PrimaryKeyChange(String tableName, String[] newPrimaryKeyColumns)
{
super(tableName);
- _newPrimaryKeyColumns = newPrimaryKeyColumns;
+ if (newPrimaryKeyColumns == null)
+ {
+ _newPrimaryKeyColumns = new String[0];
+ }
+ else
+ {
+ _newPrimaryKeyColumns = new String[newPrimaryKeyColumns.length];
+
+ System.arraycopy(newPrimaryKeyColumns, 0, _newPrimaryKeyColumns, 0, newPrimaryKeyColumns.length);
+ }
}
/**
@@ -52,7 +61,10 @@
*/
public String[] getNewPrimaryKeyColumns()
{
- return _newPrimaryKeyColumns;
+ String[] result = new String[_newPrimaryKeyColumns.length];
+
+ System.arraycopy(_newPrimaryKeyColumns, 0, result, 0, _newPrimaryKeyColumns.length);
+ return result;
}
/**
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/dynabean/SqlDynaClass.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/dynabean/SqlDynaClass.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/dynabean/SqlDynaClass.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/dynabean/SqlDynaClass.java Sun Feb 24 18:17:57 2008
@@ -108,7 +108,11 @@
*/
public SqlDynaProperty[] getSqlDynaProperties()
{
- return (SqlDynaProperty[])getDynaProperties();
+ DynaProperty[] props = getDynaProperties();
+ SqlDynaProperty[] result = new SqlDynaProperty[props.length];
+
+ System.arraycopy(props, 0, result, 0, props.length);
+ return result;
}
/**
@@ -122,7 +126,11 @@
{
initPrimaryKeys();
}
- return _primaryKeyProperties;
+
+ SqlDynaProperty[] result = new SqlDynaProperty[_primaryKeyProperties.length];
+
+ System.arraycopy(_primaryKeyProperties, 0, result, 0, _primaryKeyProperties.length);
+ return result;
}
/**
@@ -136,7 +144,11 @@
{
initPrimaryKeys();
}
- return _nonPrimaryKeyProperties;
+
+ SqlDynaProperty[] result = new SqlDynaProperty[_nonPrimaryKeyProperties.length];
+
+ System.arraycopy(_nonPrimaryKeyProperties, 0, result, 0, _nonPrimaryKeyProperties.length);
+ return result;
}
// Implementation methods
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/io/ConverterConfiguration.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/io/ConverterConfiguration.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/io/ConverterConfiguration.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/io/ConverterConfiguration.java Sun Feb 24 18:17:57 2008
@@ -30,7 +30,6 @@
import org.apache.ddlutils.io.converters.TimestampConverter;
import org.apache.ddlutils.model.Column;
import org.apache.ddlutils.model.Table;
-import org.apache.ddlutils.util.Jdbc3Utils;
/**
* Contains the configuration for converters, which convert between the Java data types
@@ -58,6 +57,7 @@
registerConverter(Types.TIMESTAMP, new TimestampConverter());
registerConverter(Types.BIGINT, numberConverter);
registerConverter(Types.BIT, numberConverter);
+ registerConverter(Types.BOOLEAN, numberConverter);
registerConverter(Types.DECIMAL, numberConverter);
registerConverter(Types.DOUBLE, numberConverter);
registerConverter(Types.FLOAT, numberConverter);
@@ -70,10 +70,6 @@
registerConverter(Types.VARBINARY, binaryConverter);
registerConverter(Types.LONGVARBINARY, binaryConverter);
registerConverter(Types.BLOB, binaryConverter);
- if (Jdbc3Utils.supportsJava14JdbcTypes())
- {
- registerConverter(Jdbc3Utils.determineBooleanTypeCode(), numberConverter);
- }
}
/**
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/io/converters/NumberConverter.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/io/converters/NumberConverter.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/io/converters/NumberConverter.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/io/converters/NumberConverter.java Sun Feb 24 18:17:57 2008
@@ -23,7 +23,6 @@
import java.sql.Types;
import org.apache.commons.beanutils.ConvertUtils;
-import org.apache.ddlutils.util.Jdbc3Utils;
/**
* Converts between the various number types (including boolean types) and {@link java.lang.String}.
@@ -43,7 +42,7 @@
}
else
{
- Class targetClass = null;
+ Class targetClass = null;
switch (sqlTypeCode)
{
@@ -51,6 +50,7 @@
targetClass = Long.class;
break;
case Types.BIT:
+ case Types.BOOLEAN:
targetClass = Boolean.class;
break;
case Types.DECIMAL:
@@ -70,13 +70,6 @@
case Types.SMALLINT:
case Types.TINYINT:
targetClass = Short.class;
- break;
- default:
- if (Jdbc3Utils.supportsJava14JdbcTypes() &&
- (sqlTypeCode == Jdbc3Utils.determineBooleanTypeCode()))
- {
- targetClass = Boolean.class;
- }
break;
}
return targetClass == null ? textRep : ConvertUtils.convert(textRep, targetClass);
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Column.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Column.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Column.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Column.java Sun Feb 24 18:17:57 2008
@@ -29,7 +29,6 @@
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
-import org.apache.ddlutils.util.Jdbc3Utils;
/**
* Represents a column in the database model.
@@ -446,14 +445,8 @@
case Types.TIMESTAMP:
return Timestamp.valueOf(_defaultValue);
case Types.BIT:
+ case Types.BOOLEAN:
return ConvertUtils.convert(_defaultValue, Boolean.class);
- default:
- if (Jdbc3Utils.supportsJava14JdbcTypes() &&
- (_typeCode == Jdbc3Utils.determineBooleanTypeCode()))
- {
- return ConvertUtils.convert(_defaultValue, Boolean.class);
- }
- break;
}
}
catch (NumberFormatException ex)
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/model/ForeignKey.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/model/ForeignKey.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/model/ForeignKey.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/model/ForeignKey.java Sun Feb 24 18:17:57 2008
@@ -26,7 +26,7 @@
import org.apache.commons.collections.set.ListOrderedSet;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
-import org.apache.ddlutils.util.StringUtils;
+import org.apache.ddlutils.util.StringUtilsExt;
/**
* Represents a database foreign key.
@@ -309,7 +309,7 @@
{
for (int idx = 0; idx < getReferenceCount(); idx++)
{
- if (StringUtils.equals(columnName, getReference(idx).getLocalColumnName(), caseSensitive))
+ if (StringUtilsExt.equals(columnName, getReference(idx).getLocalColumnName(), caseSensitive))
{
return true;
}
@@ -351,7 +351,7 @@
{
for (int idx = 0; idx < getReferenceCount(); idx++)
{
- if (StringUtils.equals(columnName, getReference(idx).getForeignColumnName(), caseSensitive))
+ if (StringUtilsExt.equals(columnName, getReference(idx).getForeignColumnName(), caseSensitive))
{
return true;
}
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Index.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Index.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Index.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Index.java Sun Feb 24 18:17:57 2008
@@ -26,7 +26,7 @@
*
* @version $Revision$
*/
-public interface Index extends Cloneable, Serializable
+public interface Index extends Serializable
{
/**
* Determines whether this index is unique or not.
@@ -108,14 +108,6 @@
* @param idx The position of the index column to remove
*/
public void removeColumn(int idx);
-
- /**
- * Clones this index.
- *
- * @return The clone
- * @throws CloneNotSupportedException If the cloning did fail
- */
- public Object clone() throws CloneNotSupportedException;
/**
* Returns a clone of this index object. This is essentially the same method as
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/model/IndexImplBase.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/model/IndexImplBase.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/model/IndexImplBase.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/model/IndexImplBase.java Sun Feb 24 18:17:57 2008
@@ -21,7 +21,7 @@
import java.util.ArrayList;
-import org.apache.ddlutils.util.StringUtils;
+import org.apache.ddlutils.util.StringUtilsExt;
/**
* Base class for indexes.
@@ -101,7 +101,7 @@
{
IndexColumn curColumn = getColumn(idx);
- if (StringUtils.equals(columnName, curColumn.getName(), caseSensitive))
+ if (StringUtilsExt.equals(columnName, curColumn.getName(), caseSensitive))
{
return true;
}
@@ -145,9 +145,4 @@
{
_columns.remove(idx);
}
-
- /**
- * {@inheritDoc}
- */
- public abstract Object clone() throws CloneNotSupportedException;
}
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/model/NonUniqueIndex.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/model/NonUniqueIndex.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/model/NonUniqueIndex.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/model/NonUniqueIndex.java Sun Feb 24 18:17:57 2008
@@ -45,14 +45,6 @@
/**
* {@inheritDoc}
*/
- public Object clone() throws CloneNotSupportedException
- {
- return getClone();
- }
-
- /**
- * {@inheritDoc}
- */
public Index getClone() throws ModelException
{
NonUniqueIndex result = new NonUniqueIndex();
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/model/TypeMap.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/model/TypeMap.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/model/TypeMap.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/model/TypeMap.java Sun Feb 24 18:17:57 2008
@@ -20,14 +20,11 @@
*/
import java.sql.Types;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
-import org.apache.ddlutils.util.Jdbc3Utils;
-
/**
* A class that maps SQL type names to their JDBC type ID found in
* {@link java.sql.Types} and vice versa.
@@ -111,8 +108,10 @@
registerJdbcType(Types.BINARY, BINARY, JdbcTypeCategoryEnum.BINARY);
registerJdbcType(Types.BIT, BIT, JdbcTypeCategoryEnum.NUMERIC);
registerJdbcType(Types.BLOB, BLOB, JdbcTypeCategoryEnum.BINARY);
+ registerJdbcType(Types.BOOLEAN, BOOLEAN, JdbcTypeCategoryEnum.NUMERIC);
registerJdbcType(Types.CHAR, CHAR, JdbcTypeCategoryEnum.TEXTUAL);
registerJdbcType(Types.CLOB, CLOB, JdbcTypeCategoryEnum.TEXTUAL);
+ registerJdbcType(Types.DATALINK, DATALINK, JdbcTypeCategoryEnum.SPECIAL);
registerJdbcType(Types.DATE, DATE, JdbcTypeCategoryEnum.DATETIME);
registerJdbcType(Types.DECIMAL, DECIMAL, JdbcTypeCategoryEnum.NUMERIC);
registerJdbcType(Types.DISTINCT, DISTINCT, JdbcTypeCategoryEnum.SPECIAL);
@@ -134,13 +133,6 @@
registerJdbcType(Types.TINYINT, TINYINT, JdbcTypeCategoryEnum.NUMERIC);
registerJdbcType(Types.VARBINARY, VARBINARY, JdbcTypeCategoryEnum.BINARY);
registerJdbcType(Types.VARCHAR, VARCHAR, JdbcTypeCategoryEnum.TEXTUAL);
-
- // only available in JDK 1.4 and above:
- if (Jdbc3Utils.supportsJava14JdbcTypes())
- {
- registerJdbcType(Jdbc3Utils.determineBooleanTypeCode(), BOOLEAN, JdbcTypeCategoryEnum.NUMERIC);
- registerJdbcType(Jdbc3Utils.determineDatalinkTypeCode(), DATALINK, JdbcTypeCategoryEnum.SPECIAL);
- }
// Torque/Turbine extensions which we only support when reading from an XML schema
_typeNameToTypeCode.put("BOOLEANINT", new Integer(Types.TINYINT));
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/model/UniqueIndex.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/model/UniqueIndex.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/model/UniqueIndex.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/model/UniqueIndex.java Sun Feb 24 18:17:57 2008
@@ -46,14 +46,6 @@
/**
* {@inheritDoc}
*/
- public Object clone() throws CloneNotSupportedException
- {
- return getClone();
- }
-
- /**
- * {@inheritDoc}
- */
public Index getClone() throws ModelException
{
UniqueIndex result = new UniqueIndex();
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/DatabaseMetaDataWrapper.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/DatabaseMetaDataWrapper.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/DatabaseMetaDataWrapper.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/DatabaseMetaDataWrapper.java Sun Feb 24 18:17:57 2008
@@ -106,7 +106,17 @@
*/
public String[] getTableTypes()
{
- return _tableTypes;
+ if (_tableTypes == null)
+ {
+ return null;
+ }
+ else
+ {
+ String[] result = new String[_tableTypes.length];
+
+ System.arraycopy(_tableTypes, 0, result, 0, _tableTypes.length);
+ return result;
+ }
}
/**
@@ -116,7 +126,16 @@
*/
public void setTableTypes(String[] types)
{
- _tableTypes = types;
+ if (types == null)
+ {
+ _tableTypes = null;
+ }
+ else
+ {
+ _tableTypes = new String[types.length];
+
+ System.arraycopy(types, 0, _tableTypes, 0, types.length);
+ }
}
/**
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/DefaultValueHelper.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/DefaultValueHelper.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/DefaultValueHelper.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/DefaultValueHelper.java Sun Feb 24 18:17:57 2008
@@ -27,7 +27,6 @@
import org.apache.commons.beanutils.ConversionException;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.ddlutils.model.TypeMap;
-import org.apache.ddlutils.util.Jdbc3Utils;
/**
* Helper class for dealing with default values, e.g. converting them to other types.
@@ -54,6 +53,7 @@
switch (originalTypeCode)
{
case Types.BIT:
+ case Types.BOOLEAN:
result = convertBoolean(defaultValue, targetTypeCode).toString();
break;
case Types.DATE:
@@ -82,13 +82,6 @@
{}
}
break;
- default:
- if (Jdbc3Utils.supportsJava14JdbcTypes() &&
- (originalTypeCode == Jdbc3Utils.determineBooleanTypeCode()))
- {
- result = convertBoolean(defaultValue, targetTypeCode).toString();
- }
- break;
}
}
return result;
@@ -115,8 +108,7 @@
return defaultValue;
}
- if ((targetTypeCode == Types.BIT) ||
- (Jdbc3Utils.supportsJava14JdbcTypes() && (targetTypeCode == Jdbc3Utils.determineBooleanTypeCode())))
+ if ((targetTypeCode == Types.BIT) || (targetTypeCode == Types.BOOLEAN))
{
result = value;
}
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/JdbcModelReader.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/JdbcModelReader.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/JdbcModelReader.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/JdbcModelReader.java Sun Feb 24 18:17:57 2008
@@ -61,7 +61,7 @@
public class JdbcModelReader
{
/** The Log to which logging calls will be made. */
- private final Log _log = LogFactory.getLog(JdbcModelReader.class);
+ private final Log _log = LogFactory.getLog(getClass());
/** The descriptors for the relevant columns in the table meta data. */
private final List _columnsForTable;
@@ -122,6 +122,16 @@
}
/**
+ * Returns the log used by the model reader.
+ *
+ * @return The log
+ */
+ protected Log getLog()
+ {
+ return _log;
+ }
+
+ /**
* Returns the platform that this model reader belongs to.
*
* @return The platform
@@ -347,7 +357,17 @@
*/
public String[] getDefaultTableTypes()
{
- return _defaultTableTypes;
+ if (_defaultTableTypes == null)
+ {
+ return null;
+ }
+ else
+ {
+ String[] result = new String[_defaultTableTypes.length];
+
+ System.arraycopy(_defaultTableTypes, 0, result, 0, _defaultTableTypes.length);
+ return result;
+ }
}
/**
@@ -358,7 +378,16 @@
*/
public void setDefaultTableTypes(String[] types)
{
- _defaultTableTypes = types;
+ if (types == null)
+ {
+ _defaultTableTypes = null;
+ }
+ else
+ {
+ _defaultTableTypes = new String[types.length];
+
+ System.arraycopy(types, 0, types, 0, types.length);
+ }
}
/**
@@ -536,10 +565,7 @@
}
finally
{
- if (tableData != null)
- {
- tableData.close();
- }
+ closeResultSet(tableData);
}
}
@@ -761,10 +787,7 @@
}
finally
{
- if (columnData != null)
- {
- columnData.close();
- }
+ closeResultSet(columnData);
}
}
@@ -812,7 +835,7 @@
String description = (String)values.get("REMARKS");
- if (!org.apache.ddlutils.util.StringUtils.isEmpty(description))
+ if (!org.apache.ddlutils.util.StringUtilsExt.isEmpty(description))
{
column.setDescription(description);
}
@@ -843,10 +866,7 @@
}
finally
{
- if (pkData != null)
- {
- pkData.close();
- }
+ closeResultSet(pkData);
}
return pks;
}
@@ -888,10 +908,7 @@
}
finally
{
- if (fkData != null)
- {
- fkData.close();
- }
+ closeResultSet(fkData);
}
return fks.values();
}
@@ -985,10 +1002,7 @@
}
finally
{
- if (indexData != null)
- {
- indexData.close();
- }
+ closeResultSet(indexData);
}
return indices.values();
}
@@ -1126,10 +1140,7 @@
}
finally
{
- if (stmt != null)
- {
- stmt.close();
- }
+ closeStatement(stmt);
}
}
@@ -1246,13 +1257,37 @@
}
finally
{
- if (columnData != null)
+ closeResultSet(columnData);
+ closeResultSet(tableData);
+ }
+ }
+
+ protected void closeResultSet(ResultSet resultSet)
+ {
+ if (resultSet != null)
+ {
+ try
+ {
+ resultSet.close();
+ }
+ catch (SQLException ex)
{
- columnData.close();
+ _log.warn("Error while closing result set", ex);
+ }
+ }
+ }
+
+ protected void closeStatement(Statement stmt)
+ {
+ if (stmt != null)
+ {
+ try
+ {
+ stmt.close();
}
- if (tableData != null)
+ catch (SQLException ex)
{
- tableData.close();
+ _log.warn("Error while closing statement", ex);
}
}
}
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java Sun Feb 24 18:17:57 2008
@@ -83,7 +83,6 @@
import org.apache.ddlutils.model.ModelException;
import org.apache.ddlutils.model.Table;
import org.apache.ddlutils.model.TypeMap;
-import org.apache.ddlutils.util.Jdbc3Utils;
import org.apache.ddlutils.util.JdbcSupport;
import org.apache.ddlutils.util.SqlTokenizer;
@@ -461,7 +460,7 @@
*/
public String getCreateTablesSql(Database model, boolean dropTablesFirst, boolean continueOnError)
{
- return getCreateTablesSql(model, dropTablesFirst, continueOnError);
+ return getCreateModelSql(model, dropTablesFirst, continueOnError);
}
/**
@@ -469,7 +468,7 @@
*/
public String getCreateTablesSql(Database model, CreationParameters params, boolean dropTablesFirst, boolean continueOnError)
{
- return getCreateTablesSql(model, params, dropTablesFirst, continueOnError);
+ return getCreateModelSql(model, params, dropTablesFirst, continueOnError);
}
/**
@@ -2140,14 +2139,13 @@
if (results[idx] < 0)
{
hasSum = false;
- if (Jdbc3Utils.supportsJava14BatchResultCodes())
+ if (results[idx] == Statement.EXECUTE_FAILED)
{
- String msg = Jdbc3Utils.getBatchResultMessage(table.getName(), idx, results[idx]);
-
- if (msg != null)
- {
- _log.warn(msg);
- }
+ _log.warn("The batch insertion of row " + idx + " into table " + table.getName() + " failed but the driver is able to continue processing");
+ }
+ else if (results[idx] != Statement.SUCCESS_NO_INFO)
+ {
+ _log.warn("The batch insertion of row " + idx + " into table " + table.getName() + " returned an undefined status value " + results[idx]);
}
}
else
@@ -2936,6 +2934,7 @@
value = useIdx ? resultSet.getBigDecimal(columnIdx) : resultSet.getBigDecimal(columnName);
break;
case Types.BIT:
+ case Types.BOOLEAN:
value = new Boolean(useIdx ? resultSet.getBoolean(columnIdx) : resultSet.getBoolean(columnName));
break;
case Types.TINYINT:
@@ -3030,16 +3029,7 @@
value = useIdx ? resultSet.getRef(columnIdx) : resultSet.getRef(columnName);
break;
default:
- // special handling for Java 1.4/JDBC 3 types
- if (Jdbc3Utils.supportsJava14JdbcTypes() &&
- (jdbcType == Jdbc3Utils.determineBooleanTypeCode()))
- {
- value = new Boolean(useIdx ? resultSet.getBoolean(columnIdx) : resultSet.getBoolean(columnName));
- }
- else
- {
- value = useIdx ? resultSet.getObject(columnIdx) : resultSet.getObject(columnName);
- }
+ value = useIdx ? resultSet.getObject(columnIdx) : resultSet.getObject(columnName);
break;
}
return resultSet.wasNull() ? null : value;
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/axion/AxionPlatform.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/axion/AxionPlatform.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/axion/AxionPlatform.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/axion/AxionPlatform.java Sun Feb 24 18:17:57 2008
@@ -54,16 +54,16 @@
info.setDelimitedIdentifiersSupported(false);
info.setSqlCommentsSupported(false);
info.setLastIdentityValueReadable(false);
- info.addNativeTypeMapping(Types.ARRAY, "BLOB", Types.BLOB);
- info.addNativeTypeMapping(Types.BIT, "BOOLEAN");
- info.addNativeTypeMapping(Types.DISTINCT, "VARBINARY", Types.VARBINARY);
- info.addNativeTypeMapping(Types.NULL, "VARBINARY", Types.VARBINARY);
- info.addNativeTypeMapping(Types.OTHER, "BLOB", Types.BLOB);
- info.addNativeTypeMapping(Types.REAL, "REAL", Types.FLOAT);
- info.addNativeTypeMapping(Types.REF, "VARBINARY", Types.VARBINARY);
- info.addNativeTypeMapping(Types.STRUCT, "VARBINARY", Types.VARBINARY);
- info.addNativeTypeMapping(Types.TINYINT, "SMALLINT", Types.SMALLINT);
- info.addNativeTypeMapping("DATALINK", "VARBINARY", "VARBINARY");
+ info.addNativeTypeMapping(Types.ARRAY, "BLOB", Types.BLOB);
+ info.addNativeTypeMapping(Types.BIT, "BOOLEAN");
+ info.addNativeTypeMapping(Types.DATALINK, "VARBINARY", Types.VARBINARY);
+ info.addNativeTypeMapping(Types.DISTINCT, "VARBINARY", Types.VARBINARY);
+ info.addNativeTypeMapping(Types.NULL, "VARBINARY", Types.VARBINARY);
+ info.addNativeTypeMapping(Types.OTHER, "BLOB", Types.BLOB);
+ info.addNativeTypeMapping(Types.REAL, "REAL", Types.FLOAT);
+ info.addNativeTypeMapping(Types.REF, "VARBINARY", Types.VARBINARY);
+ info.addNativeTypeMapping(Types.STRUCT, "VARBINARY", Types.VARBINARY);
+ info.addNativeTypeMapping(Types.TINYINT, "SMALLINT", Types.SMALLINT);
setSqlBuilder(new AxionBuilder(this));
setModelReader(new AxionModelReader(this));
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/cloudscape/CloudscapePlatform.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/cloudscape/CloudscapePlatform.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/cloudscape/CloudscapePlatform.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/cloudscape/CloudscapePlatform.java Sun Feb 24 18:17:57 2008
@@ -52,13 +52,15 @@
info.setMultipleIdentityColumnsSupported(false);
// BINARY and VARBINARY will also be handled by CloudscapeBuilder.getSqlType
- info.addNativeTypeMapping(Types.ARRAY, "BLOB", Types.BLOB);
+ info.addNativeTypeMapping(Types.ARRAY, "BLOB", Types.BLOB);
info.addNativeTypeMapping(Types.BINARY, "CHAR {0} FOR BIT DATA");
- info.addNativeTypeMapping(Types.BIT, "SMALLINT", Types.SMALLINT);
- info.addNativeTypeMapping(Types.DISTINCT, "BLOB", Types.BLOB);
+ info.addNativeTypeMapping(Types.BIT, "SMALLINT", Types.SMALLINT);
+ info.addNativeTypeMapping(Types.BOOLEAN, "SMALLINT", Types.SMALLINT);
+ info.addNativeTypeMapping(Types.DATALINK, "LONG VARCHAR FOR BIT DATA", Types.LONGVARBINARY);
+ info.addNativeTypeMapping(Types.DISTINCT, "BLOB", Types.BLOB);
info.addNativeTypeMapping(Types.DOUBLE, "DOUBLE PRECISION");
- info.addNativeTypeMapping(Types.FLOAT, "DOUBLE PRECISION", Types.DOUBLE);
- info.addNativeTypeMapping(Types.JAVA_OBJECT, "BLOB", Types.BLOB);
+ info.addNativeTypeMapping(Types.FLOAT, "DOUBLE PRECISION", Types.DOUBLE);
+ info.addNativeTypeMapping(Types.JAVA_OBJECT, "BLOB", Types.BLOB);
info.addNativeTypeMapping(Types.LONGVARBINARY, "LONG VARCHAR FOR BIT DATA");
info.addNativeTypeMapping(Types.LONGVARCHAR, "LONG VARCHAR");
info.addNativeTypeMapping(Types.NULL, "LONG VARCHAR FOR BIT DATA", Types.LONGVARBINARY);
@@ -67,8 +69,6 @@
info.addNativeTypeMapping(Types.STRUCT, "BLOB", Types.BLOB);
info.addNativeTypeMapping(Types.TINYINT, "SMALLINT", Types.SMALLINT);
info.addNativeTypeMapping(Types.VARBINARY, "VARCHAR {0} FOR BIT DATA");
- info.addNativeTypeMapping("BOOLEAN", "SMALLINT", "SMALLINT");
- info.addNativeTypeMapping("DATALINK", "LONG VARCHAR FOR BIT DATA", "LONGVARBINARY");
info.setDefaultSize(Types.BINARY, 254);
info.setDefaultSize(Types.CHAR, 254);
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/db2/Db2Builder.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/db2/Db2Builder.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/db2/Db2Builder.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/db2/Db2Builder.java Sun Feb 24 18:17:57 2008
@@ -29,7 +29,6 @@
import org.apache.ddlutils.model.Table;
import org.apache.ddlutils.model.TypeMap;
import org.apache.ddlutils.platform.SqlBuilder;
-import org.apache.ddlutils.util.Jdbc3Utils;
/**
* The SQL Builder for DB2.
@@ -54,10 +53,9 @@
*/
protected String getNativeDefaultValue(Column column)
{
- if ((column.getTypeCode() == Types.BIT) ||
- (Jdbc3Utils.supportsJava14JdbcTypes() && (column.getTypeCode() == Jdbc3Utils.determineBooleanTypeCode())))
+ if ((column.getTypeCode() == Types.BIT) || (column.getTypeCode() == Types.BOOLEAN))
{
- return getDefaultValueHelper().convert(column.getDefaultValue(), column.getTypeCode(), Types.SMALLINT).toString();
+ return getDefaultValueHelper().convert(column.getDefaultValue(), column.getTypeCode(), Types.SMALLINT);
}
else
{
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/db2/Db2ModelReader.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/db2/Db2ModelReader.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/db2/Db2ModelReader.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/db2/Db2ModelReader.java Sun Feb 24 18:17:57 2008
@@ -22,7 +22,6 @@
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
-import java.sql.Statement;
import java.sql.Types;
import java.util.HashSet;
import java.util.Map;
@@ -182,11 +181,13 @@
*/
protected void determineAutoIncrementColumns(Table table) throws SQLException
{
+ final String query = "SELECT COLNAME FROM SYSCAT.COLUMNS WHERE TABNAME = ? AND IDENTITY = 'Y' AND HIDDEN != 'S'";
+
PreparedStatement stmt = null;
try
{
- stmt = getConnection().prepareStatement("SELECT COLNAME FROM SYSCAT.COLUMNS WHERE TABNAME = ? AND IDENTITY = 'Y' AND HIDDEN != 'S'");
+ stmt = getConnection().prepareStatement(query);
stmt.setString(1, table.getName());
ResultSet rs = stmt.executeQuery();
@@ -201,14 +202,10 @@
column.setAutoIncrement(true);
}
}
- rs.close();
}
finally
{
- if (stmt != null)
- {
- stmt.close();
- }
+ closeStatement(stmt);
}
}
@@ -251,10 +248,7 @@
}
finally
{
- if (pkData != null)
- {
- pkData.close();
- }
+ closeResultSet(pkData);
}
return pkNames.contains(index.getName());
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/db2/Db2Platform.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/db2/Db2Platform.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/db2/Db2Platform.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/db2/Db2Platform.java Sun Feb 24 18:17:57 2008
@@ -36,7 +36,7 @@
import org.apache.ddlutils.platform.CreationParameters;
import org.apache.ddlutils.platform.DefaultTableDefinitionChangesPredicate;
import org.apache.ddlutils.platform.PlatformImplBase;
-import org.apache.ddlutils.util.StringUtils;
+import org.apache.ddlutils.util.StringUtilsExt;
/**
* The DB2 platform implementation.
@@ -79,6 +79,7 @@
info.addNativeTypeMapping(Types.ARRAY, "BLOB", Types.BLOB);
info.addNativeTypeMapping(Types.BINARY, "CHAR {0} FOR BIT DATA");
info.addNativeTypeMapping(Types.BIT, "SMALLINT", Types.SMALLINT);
+ info.addNativeTypeMapping(Types.BOOLEAN, "SMALLINT", Types.SMALLINT);
info.addNativeTypeMapping(Types.FLOAT, "DOUBLE", Types.DOUBLE);
info.addNativeTypeMapping(Types.JAVA_OBJECT, "BLOB", Types.BLOB);
info.addNativeTypeMapping(Types.LONGVARBINARY, "LONG VARCHAR FOR BIT DATA");
@@ -89,7 +90,6 @@
info.addNativeTypeMapping(Types.STRUCT, "BLOB", Types.BLOB);
info.addNativeTypeMapping(Types.TINYINT, "SMALLINT", Types.SMALLINT);
info.addNativeTypeMapping(Types.VARBINARY, "VARCHAR {0} FOR BIT DATA");
- info.addNativeTypeMapping("BOOLEAN", "SMALLINT", "SMALLINT");
info.setDefaultSize(Types.CHAR, 254);
info.setDefaultSize(Types.VARCHAR, 254);
@@ -141,7 +141,7 @@
// DB2 cannot add IDENTITY columns, and required columns need a default value
return !addColumnChange.getNewColumn().isAutoIncrement() &&
- (!addColumnChange.getNewColumn().isRequired() || !StringUtils.isEmpty(addColumnChange.getNewColumn().getDefaultValue()));
+ (!addColumnChange.getNewColumn().isRequired() || !StringUtilsExt.isEmpty(addColumnChange.getNewColumn().getDefaultValue()));
}
else
{
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/derby/DerbyBuilder.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/derby/DerbyBuilder.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/derby/DerbyBuilder.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/derby/DerbyBuilder.java Sun Feb 24 18:17:57 2008
@@ -29,7 +29,6 @@
import org.apache.ddlutils.model.Table;
import org.apache.ddlutils.model.TypeMap;
import org.apache.ddlutils.platform.cloudscape.CloudscapeBuilder;
-import org.apache.ddlutils.util.Jdbc3Utils;
/**
* The SQL Builder for Derby.
@@ -53,10 +52,9 @@
*/
protected String getNativeDefaultValue(Column column)
{
- if ((column.getTypeCode() == Types.BIT) ||
- (Jdbc3Utils.supportsJava14JdbcTypes() && (column.getTypeCode() == Jdbc3Utils.determineBooleanTypeCode())))
+ if ((column.getTypeCode() == Types.BIT) || (column.getTypeCode() == Types.BOOLEAN))
{
- return getDefaultValueHelper().convert(column.getDefaultValue(), column.getTypeCode(), Types.SMALLINT).toString();
+ return getDefaultValueHelper().convert(column.getDefaultValue(), column.getTypeCode(), Types.SMALLINT);
}
else
{
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/firebird/FirebirdBuilder.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/firebird/FirebirdBuilder.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/firebird/FirebirdBuilder.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/firebird/FirebirdBuilder.java Sun Feb 24 18:17:57 2008
@@ -29,7 +29,6 @@
import org.apache.ddlutils.model.Index;
import org.apache.ddlutils.model.Table;
import org.apache.ddlutils.platform.SqlBuilder;
-import org.apache.ddlutils.util.Jdbc3Utils;
/**
* The SQL Builder for the FireBird database.
@@ -177,10 +176,9 @@
*/
protected String getNativeDefaultValue(Column column)
{
- if ((column.getTypeCode() == Types.BIT) ||
- (Jdbc3Utils.supportsJava14JdbcTypes() && (column.getTypeCode() == Jdbc3Utils.determineBooleanTypeCode())))
+ if ((column.getTypeCode() == Types.BIT) || (column.getTypeCode() == Types.BOOLEAN))
{
- return getDefaultValueHelper().convert(column.getDefaultValue(), column.getTypeCode(), Types.SMALLINT).toString();
+ return getDefaultValueHelper().convert(column.getDefaultValue(), column.getTypeCode(), Types.SMALLINT);
}
else
{
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/firebird/FirebirdModelReader.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/firebird/FirebirdModelReader.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/firebird/FirebirdModelReader.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/firebird/FirebirdModelReader.java Sun Feb 24 18:17:57 2008
@@ -120,10 +120,7 @@
}
finally
{
- if (columnData != null)
- {
- columnData.close();
- }
+ closeResultSet(columnData);
}
}
@@ -154,7 +151,9 @@
{
// Since for long table and column names, the generator name will be shortened
// we have to determine for each column whether there is a generator for it
- FirebirdBuilder builder = (FirebirdBuilder)getPlatform().getSqlBuilder();
+ final String query = "SELECT RDB$GENERATOR_NAME FROM RDB$GENERATORS WHERE RDB$GENERATOR_NAME NOT LIKE '%$%'";
+
+ FirebirdBuilder builder = (FirebirdBuilder)getPlatform().getSqlBuilder();
Column[] columns = table.getColumns();
HashMap names = new HashMap();
String name;
@@ -169,11 +168,13 @@
names.put(name, columns[idx]);
}
- Statement stmt = getConnection().createStatement();
+ Statement stmt = null;
try
{
- ResultSet rs = stmt.executeQuery("SELECT RDB$GENERATOR_NAME FROM RDB$GENERATORS WHERE RDB$GENERATOR_NAME NOT LIKE '%$%'");
+ stmt = getConnection().createStatement();
+
+ ResultSet rs = stmt.executeQuery(query);
while (rs.next())
{
@@ -185,11 +186,10 @@
column.setAutoIncrement(true);
}
}
- rs.close();
}
finally
{
- stmt.close();
+ closeStatement(stmt);
}
}
@@ -232,10 +232,7 @@
}
finally
{
- if (pkData != null)
- {
- pkData.close();
- }
+ closeResultSet(pkData);
}
return pks;
}
@@ -279,10 +276,7 @@
}
finally
{
- if (fkData != null)
- {
- fkData.close();
- }
+ closeResultSet(fkData);
}
return fks.values();
}
@@ -294,21 +288,21 @@
{
// Jaybird is not able to read indices when delimited identifiers are turned on,
// so we gather the data manually using Firebird's system tables
- Map indices = new ListOrderedMap();
- StringBuffer query = new StringBuffer();
-
- query.append("SELECT a.RDB$INDEX_NAME INDEX_NAME, b.RDB$RELATION_NAME TABLE_NAME, b.RDB$UNIQUE_FLAG NON_UNIQUE,");
- query.append(" a.RDB$FIELD_POSITION ORDINAL_POSITION, a.RDB$FIELD_NAME COLUMN_NAME, 3 INDEX_TYPE");
- query.append(" FROM RDB$INDEX_SEGMENTS a, RDB$INDICES b WHERE a.RDB$INDEX_NAME=b.RDB$INDEX_NAME AND b.RDB$RELATION_NAME = ?");
-
- PreparedStatement stmt = getConnection().prepareStatement(query.toString());
- ResultSet indexData = null;
+ final String query =
+ "SELECT a.RDB$INDEX_NAME INDEX_NAME, b.RDB$RELATION_NAME TABLE_NAME, b.RDB$UNIQUE_FLAG NON_UNIQUE, " +
+ "a.RDB$FIELD_POSITION ORDINAL_POSITION, a.RDB$FIELD_NAME COLUMN_NAME, 3 INDEX_TYPE " +
+ "FROM RDB$INDEX_SEGMENTS a, RDB$INDICES b WHERE a.RDB$INDEX_NAME=b.RDB$INDEX_NAME AND b.RDB$RELATION_NAME = ?";
- stmt.setString(1, getPlatform().isDelimitedIdentifierModeOn() ? tableName : tableName.toUpperCase());
+ Map indices = new ListOrderedMap();
+ PreparedStatement stmt = null;
- try
+ try
{
- indexData = stmt.executeQuery();
+ stmt = getConnection().prepareStatement(query);
+
+ stmt.setString(1, getPlatform().isDelimitedIdentifierModeOn() ? tableName : tableName.toUpperCase());
+
+ ResultSet indexData = stmt.executeQuery();
while (indexData.next())
{
@@ -325,10 +319,7 @@
}
finally
{
- if (indexData != null)
- {
- indexData.close();
- }
+ closeStatement(stmt);
}
return indices.values();
}
@@ -338,16 +329,17 @@
*/
protected boolean isInternalPrimaryKeyIndex(DatabaseMetaDataWrapper metaData, Table table, Index index) throws SQLException
{
- String tableName = getPlatform().getSqlBuilder().getTableName(table);
- String indexName = getPlatform().getSqlBuilder().getIndexName(index);
- StringBuffer query = new StringBuffer();
-
- query.append("SELECT RDB$CONSTRAINT_NAME FROM RDB$RELATION_CONSTRAINTS where RDB$RELATION_NAME=? AND RDB$CONSTRAINT_TYPE=? AND RDB$INDEX_NAME=?");
-
- PreparedStatement stmt = getConnection().prepareStatement(query.toString());
+ final String query =
+ "SELECT RDB$CONSTRAINT_NAME FROM RDB$RELATION_CONSTRAINTS " +
+ "WHERE RDB$RELATION_NAME=? AND RDB$CONSTRAINT_TYPE=? AND RDB$INDEX_NAME=?";
+
+ String tableName = getPlatform().getSqlBuilder().getTableName(table);
+ String indexName = getPlatform().getSqlBuilder().getIndexName(index);
+ PreparedStatement stmt = null;
try
{
+ stmt = getConnection().prepareStatement(query);
stmt.setString(1, getPlatform().isDelimitedIdentifierModeOn() ? tableName : tableName.toUpperCase());
stmt.setString(2, "PRIMARY KEY");
stmt.setString(3, indexName);
@@ -358,10 +350,7 @@
}
finally
{
- if (stmt != null)
- {
- stmt.close();
- }
+ closeStatement(stmt);
}
}
@@ -370,17 +359,18 @@
*/
protected boolean isInternalForeignKeyIndex(DatabaseMetaDataWrapper metaData, Table table, ForeignKey fk, Index index) throws SQLException
{
- String tableName = getPlatform().getSqlBuilder().getTableName(table);
- String indexName = getPlatform().getSqlBuilder().getIndexName(index);
- String fkName = getPlatform().getSqlBuilder().getForeignKeyName(table, fk);
- StringBuffer query = new StringBuffer();
-
- query.append("SELECT RDB$CONSTRAINT_NAME FROM RDB$RELATION_CONSTRAINTS where RDB$RELATION_NAME=? AND RDB$CONSTRAINT_TYPE=? AND RDB$CONSTRAINT_NAME=? AND RDB$INDEX_NAME=?");
-
- PreparedStatement stmt = getConnection().prepareStatement(query.toString());
+ final String query =
+ "SELECT RDB$CONSTRAINT_NAME FROM RDB$RELATION_CONSTRAINTS " +
+ "WHERE RDB$RELATION_NAME=? AND RDB$CONSTRAINT_TYPE=? AND RDB$CONSTRAINT_NAME=? AND RDB$INDEX_NAME=?";
+
+ String tableName = getPlatform().getSqlBuilder().getTableName(table);
+ String indexName = getPlatform().getSqlBuilder().getIndexName(index);
+ String fkName = getPlatform().getSqlBuilder().getForeignKeyName(table, fk);
+ PreparedStatement stmt = null;
try
{
+ stmt = getConnection().prepareStatement(query);
stmt.setString(1, getPlatform().isDelimitedIdentifierModeOn() ? tableName : tableName.toUpperCase());
stmt.setString(2, "FOREIGN KEY");
stmt.setString(3, fkName);
@@ -392,10 +382,7 @@
}
finally
{
- if (stmt != null)
- {
- stmt.close();
- }
+ closeStatement(stmt);
}
}
@@ -466,7 +453,7 @@
found = false;
}
}
- columnData.close();
+ closeResultSet(columnData);
columnData = null;
}
}
@@ -474,14 +461,8 @@
}
finally
{
- if (columnData != null)
- {
- columnData.close();
- }
- if (tableData != null)
- {
- tableData.close();
- }
+ closeResultSet(columnData);
+ closeResultSet(tableData);
}
}
}
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/firebird/FirebirdPlatform.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/firebird/FirebirdPlatform.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/firebird/FirebirdPlatform.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/firebird/FirebirdPlatform.java Sun Feb 24 18:17:57 2008
@@ -71,9 +71,11 @@
info.addNativeTypeMapping(Types.ARRAY, "BLOB", Types.LONGVARBINARY);
info.addNativeTypeMapping(Types.BINARY, "BLOB", Types.LONGVARBINARY);
info.addNativeTypeMapping(Types.BIT, "SMALLINT", Types.SMALLINT);
+ info.addNativeTypeMapping(Types.BLOB, "BLOB", Types.LONGVARBINARY);
+ info.addNativeTypeMapping(Types.BOOLEAN, "SMALLINT", Types.SMALLINT);
info.addNativeTypeMapping(Types.CLOB, "BLOB SUB_TYPE TEXT", Types.LONGVARCHAR);
+ info.addNativeTypeMapping(Types.DATALINK, "BLOB", Types.LONGVARBINARY);
info.addNativeTypeMapping(Types.DISTINCT, "BLOB", Types.LONGVARBINARY);
- info.addNativeTypeMapping(Types.BLOB, "BLOB", Types.LONGVARBINARY);
info.addNativeTypeMapping(Types.DOUBLE, "DOUBLE PRECISION");
info.addNativeTypeMapping(Types.FLOAT, "DOUBLE PRECISION", Types.DOUBLE);
info.addNativeTypeMapping(Types.JAVA_OBJECT, "BLOB", Types.LONGVARBINARY);
@@ -87,9 +89,6 @@
info.addNativeTypeMapping(Types.STRUCT, "BLOB", Types.LONGVARBINARY);
info.addNativeTypeMapping(Types.TINYINT, "SMALLINT", Types.SMALLINT);
info.addNativeTypeMapping(Types.VARBINARY, "BLOB", Types.LONGVARBINARY);
-
- info.addNativeTypeMapping("BOOLEAN", "SMALLINT", "SMALLINT");
- info.addNativeTypeMapping("DATALINK", "BLOB", "LONGVARBINARY");
info.setDefaultSize(Types.VARCHAR, 254);
info.setDefaultSize(Types.CHAR, 254);
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/hsqldb/HsqlDbPlatform.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/hsqldb/HsqlDbPlatform.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/hsqldb/HsqlDbPlatform.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/hsqldb/HsqlDbPlatform.java Sun Feb 24 18:17:57 2008
@@ -68,8 +68,10 @@
info.setMixingIdentityAndNormalPrimaryKeyColumnsSupported(false);
info.addNativeTypeMapping(Types.ARRAY, "LONGVARBINARY", Types.LONGVARBINARY);
+ info.addNativeTypeMapping(Types.BIT, "BOOLEAN", Types.BOOLEAN);
info.addNativeTypeMapping(Types.BLOB, "LONGVARBINARY", Types.LONGVARBINARY);
info.addNativeTypeMapping(Types.CLOB, "LONGVARCHAR", Types.LONGVARCHAR);
+ info.addNativeTypeMapping(Types.DATALINK, "LONGVARBINARY", Types.LONGVARBINARY);
info.addNativeTypeMapping(Types.DISTINCT, "LONGVARBINARY", Types.LONGVARBINARY);
info.addNativeTypeMapping(Types.FLOAT, "DOUBLE", Types.DOUBLE);
info.addNativeTypeMapping(Types.JAVA_OBJECT, "OBJECT");
@@ -78,9 +80,6 @@
info.addNativeTypeMapping(Types.STRUCT, "LONGVARBINARY", Types.LONGVARBINARY);
// JDBC's TINYINT requires a value range of -255 to 255, but HsqlDb's is only -128 to 127
info.addNativeTypeMapping(Types.TINYINT, "SMALLINT", Types.SMALLINT);
-
- info.addNativeTypeMapping("BIT", "BOOLEAN", "BOOLEAN");
- info.addNativeTypeMapping("DATALINK", "LONGVARBINARY", "LONGVARBINARY");
info.setDefaultSize(Types.CHAR, Integer.MAX_VALUE);
info.setDefaultSize(Types.VARCHAR, Integer.MAX_VALUE);
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/interbase/InterbaseBuilder.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/interbase/InterbaseBuilder.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/interbase/InterbaseBuilder.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/interbase/InterbaseBuilder.java Sun Feb 24 18:17:57 2008
@@ -29,7 +29,6 @@
import org.apache.ddlutils.model.Index;
import org.apache.ddlutils.model.Table;
import org.apache.ddlutils.platform.SqlBuilder;
-import org.apache.ddlutils.util.Jdbc3Utils;
/**
* The SQL Builder for the Interbase database.
@@ -70,10 +69,9 @@
*/
protected String getNativeDefaultValue(Column column)
{
- if ((column.getTypeCode() == Types.BIT) ||
- (Jdbc3Utils.supportsJava14JdbcTypes() && (column.getTypeCode() == Jdbc3Utils.determineBooleanTypeCode())))
+ if ((column.getTypeCode() == Types.BIT) || (column.getTypeCode() == Types.BOOLEAN))
{
- return getDefaultValueHelper().convert(column.getDefaultValue(), column.getTypeCode(), Types.SMALLINT).toString();
+ return getDefaultValueHelper().convert(column.getDefaultValue(), column.getTypeCode(), Types.SMALLINT);
}
else
{
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/interbase/InterbaseModelReader.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/interbase/InterbaseModelReader.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/interbase/InterbaseModelReader.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/interbase/InterbaseModelReader.java Sun Feb 24 18:17:57 2008
@@ -123,10 +123,7 @@
}
finally
{
- if (columnData != null)
- {
- columnData.close();
- }
+ closeResultSet(columnData);
}
}
@@ -137,16 +134,16 @@
*/
protected void determineExtraColumnInfo(Table table) throws SQLException
{
- StringBuffer query = new StringBuffer();
-
- query.append("SELECT a.RDB$FIELD_NAME, a.RDB$DEFAULT_SOURCE, b.RDB$FIELD_PRECISION, b.RDB$FIELD_SCALE,");
- query.append(" b.RDB$FIELD_TYPE, b.RDB$FIELD_SUB_TYPE FROM RDB$RELATION_FIELDS a, RDB$FIELDS b");
- query.append(" WHERE a.RDB$RELATION_NAME=? AND a.RDB$FIELD_SOURCE=b.RDB$FIELD_NAME");
+ final String query =
+ "SELECT a.RDB$FIELD_NAME, a.RDB$DEFAULT_SOURCE, b.RDB$FIELD_PRECISION, b.RDB$FIELD_SCALE," +
+ " b.RDB$FIELD_TYPE, b.RDB$FIELD_SUB_TYPE FROM RDB$RELATION_FIELDS a, RDB$FIELDS b" +
+ " WHERE a.RDB$RELATION_NAME=? AND a.RDB$FIELD_SOURCE=b.RDB$FIELD_NAME";
- PreparedStatement prepStmt = getConnection().prepareStatement(query.toString());
+ PreparedStatement prepStmt = null;
try
{
+ prepStmt = getConnection().prepareStatement(query);
prepStmt.setString(1, getPlatform().isDelimitedIdentifierModeOn() ? table.getName() : table.getName().toUpperCase());
ResultSet rs = prepStmt.executeQuery();
@@ -191,11 +188,10 @@
}
}
}
- rs.close();
}
finally
{
- prepStmt.close();
+ closeStatement(prepStmt);
}
}
@@ -208,6 +204,8 @@
{
// Since for long table and column names, the generator name will be shortened
// we have to determine for each column whether there is a generator for it
+ final String query = "SELECT RDB$GENERATOR_NAME FROM RDB$GENERATORS";
+
InterbaseBuilder builder = (InterbaseBuilder)getPlatform().getSqlBuilder();
Column[] columns = table.getColumns();
HashMap names = new HashMap();
@@ -223,11 +221,13 @@
names.put(name, columns[idx]);
}
- Statement stmt = getConnection().createStatement();
+ Statement stmt = null;
try
{
- ResultSet rs = stmt.executeQuery("SELECT RDB$GENERATOR_NAME FROM RDB$GENERATORS");
+ stmt = getConnection().createStatement();
+
+ ResultSet rs = stmt.executeQuery(query);
while (rs.next())
{
@@ -239,11 +239,10 @@
column.setAutoIncrement(true);
}
}
- rs.close();
}
finally
{
- stmt.close();
+ closeStatement(stmt);
}
}
@@ -315,10 +314,7 @@
}
finally
{
- if (pkData != null)
- {
- pkData.close();
- }
+ closeResultSet(pkData);
}
return pks;
}
@@ -362,10 +358,7 @@
}
finally
{
- if (fkData != null)
- {
- fkData.close();
- }
+ closeResultSet(fkData);
}
return fks.values();
}
@@ -375,16 +368,17 @@
*/
protected boolean isInternalPrimaryKeyIndex(DatabaseMetaDataWrapper metaData, Table table, Index index) throws SQLException
{
- String tableName = getPlatform().getSqlBuilder().getTableName(table);
- String indexName = getPlatform().getSqlBuilder().getIndexName(index);
- StringBuffer query = new StringBuffer();
-
- query.append("SELECT RDB$CONSTRAINT_NAME FROM RDB$RELATION_CONSTRAINTS where RDB$RELATION_NAME=? AND RDB$CONSTRAINT_TYPE=? AND RDB$INDEX_NAME=?");
-
- PreparedStatement stmt = getConnection().prepareStatement(query.toString());
+ final String query =
+ "SELECT RDB$CONSTRAINT_NAME FROM RDB$RELATION_CONSTRAINTS " +
+ "WHERE RDB$RELATION_NAME=? AND RDB$CONSTRAINT_TYPE=? AND RDB$INDEX_NAME=?";
+
+ String tableName = getPlatform().getSqlBuilder().getTableName(table);
+ String indexName = getPlatform().getSqlBuilder().getIndexName(index);
+ PreparedStatement stmt = null;
try
{
+ stmt = getConnection().prepareStatement(query);
stmt.setString(1, getPlatform().isDelimitedIdentifierModeOn() ? tableName : tableName.toUpperCase());
stmt.setString(2, "PRIMARY KEY");
stmt.setString(3, indexName);
@@ -395,10 +389,7 @@
}
finally
{
- if (stmt != null)
- {
- stmt.close();
- }
+ closeStatement(stmt);
}
}
@@ -407,17 +398,18 @@
*/
protected boolean isInternalForeignKeyIndex(DatabaseMetaDataWrapper metaData, Table table, ForeignKey fk, Index index) throws SQLException
{
- String tableName = getPlatform().getSqlBuilder().getTableName(table);
- String indexName = getPlatform().getSqlBuilder().getIndexName(index);
- String fkName = getPlatform().getSqlBuilder().getForeignKeyName(table, fk);
- StringBuffer query = new StringBuffer();
-
- query.append("SELECT RDB$CONSTRAINT_NAME FROM RDB$RELATION_CONSTRAINTS where RDB$RELATION_NAME=? AND RDB$CONSTRAINT_TYPE=? AND RDB$CONSTRAINT_NAME=? AND RDB$INDEX_NAME=?");
-
- PreparedStatement stmt = getConnection().prepareStatement(query.toString());
+ final String query =
+ "SELECT RDB$CONSTRAINT_NAME FROM RDB$RELATION_CONSTRAINTS " +
+ "WHERE RDB$RELATION_NAME=? AND RDB$CONSTRAINT_TYPE=? AND RDB$CONSTRAINT_NAME=? AND RDB$INDEX_NAME=?";
+
+ String tableName = getPlatform().getSqlBuilder().getTableName(table);
+ String indexName = getPlatform().getSqlBuilder().getIndexName(index);
+ String fkName = getPlatform().getSqlBuilder().getForeignKeyName(table, fk);
+ PreparedStatement stmt = null;
try
{
+ stmt = getConnection().prepareStatement(query);
stmt.setString(1, getPlatform().isDelimitedIdentifierModeOn() ? tableName : tableName.toUpperCase());
stmt.setString(2, "FOREIGN KEY");
stmt.setString(3, fkName);
@@ -429,10 +421,7 @@
}
finally
{
- if (stmt != null)
- {
- stmt.close();
- }
+ closeStatement(stmt);
}
}
@@ -511,14 +500,8 @@
}
finally
{
- if (columnData != null)
- {
- columnData.close();
- }
- if (tableData != null)
- {
- tableData.close();
- }
+ closeResultSet(columnData);
+ closeResultSet(tableData);
}
}
}
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/interbase/InterbasePlatform.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/interbase/InterbasePlatform.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/interbase/InterbasePlatform.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/interbase/InterbasePlatform.java Sun Feb 24 18:17:57 2008
@@ -82,7 +82,9 @@
info.addNativeTypeMapping(Types.BINARY, "BLOB", Types.LONGVARBINARY);
info.addNativeTypeMapping(Types.BIT, "SMALLINT", Types.SMALLINT);
info.addNativeTypeMapping(Types.BLOB, "BLOB", Types.LONGVARBINARY);
+ info.addNativeTypeMapping(Types.BOOLEAN, "SMALLINT", Types.SMALLINT);
info.addNativeTypeMapping(Types.CLOB, "BLOB SUB_TYPE TEXT");
+ info.addNativeTypeMapping(Types.DATALINK, "BLOB", Types.LONGVARBINARY);
info.addNativeTypeMapping(Types.DISTINCT, "BLOB", Types.LONGVARBINARY);
info.addNativeTypeMapping(Types.DOUBLE, "DOUBLE PRECISION");
info.addNativeTypeMapping(Types.FLOAT, "DOUBLE PRECISION", Types.DOUBLE);
@@ -96,8 +98,6 @@
info.addNativeTypeMapping(Types.STRUCT, "BLOB", Types.LONGVARBINARY);
info.addNativeTypeMapping(Types.TINYINT, "SMALLINT", Types.SMALLINT);
info.addNativeTypeMapping(Types.VARBINARY, "BLOB", Types.LONGVARBINARY);
- info.addNativeTypeMapping("BOOLEAN", "SMALLINT", "SMALLINT");
- info.addNativeTypeMapping("DATALINK", "BLOB", "LONGVARBINARY");
info.setDefaultSize(Types.CHAR, 254);
info.setDefaultSize(Types.VARCHAR, 254);
@@ -154,10 +154,12 @@
case Types.BINARY:
case Types.VARBINARY:
case Types.BLOB:
+ BufferedInputStream input = null;
+
try
{
- BufferedInputStream input = new BufferedInputStream(useIdx ? resultSet.getBinaryStream(columnIdx) : resultSet.getBinaryStream(columnName));
-
+ input = new BufferedInputStream(useIdx ? resultSet.getBinaryStream(columnIdx) : resultSet.getBinaryStream(columnName));
+
if (resultSet.wasNull())
{
return null;
@@ -177,6 +179,20 @@
catch (IOException ex)
{
throw new DdlUtilsException(ex);
+ }
+ finally
+ {
+ if (input != null)
+ {
+ try
+ {
+ input.close();
+ }
+ catch (IOException ex)
+ {
+ getLog().error("Could not close binary stream read from result set", ex);
+ }
+ }
}
case Types.LONGVARCHAR:
case Types.CLOB:
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mckoi/MckoiModelReader.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mckoi/MckoiModelReader.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mckoi/MckoiModelReader.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mckoi/MckoiModelReader.java Sun Feb 24 18:17:57 2008
@@ -19,13 +19,15 @@
* under the License.
*/
+import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
-import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.collections.map.ListOrderedMap;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.ddlutils.Platform;
import org.apache.ddlutils.model.Column;
import org.apache.ddlutils.model.Table;
@@ -40,6 +42,9 @@
*/
public class MckoiModelReader extends JdbcModelReader
{
+ /** The log. */
+ protected Log _log = LogFactory.getLog(MckoiModelReader.class);
+
/**
* Creates a new model reader for Mckoi databases.
*
@@ -57,40 +62,48 @@
*/
protected Table readTable(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
{
+ // Mckoi does not currently return unique indices in the metadata so we have to query
+ // internal tables to get this info
+ final String query =
+ "SELECT uniqueColumns.column, uniqueColumns.seq_no, uniqueInfo.name" +
+ " FROM SYS_INFO.sUSRUniqueColumns uniqueColumns, SYS_INFO.sUSRUniqueInfo uniqueInfo" +
+ " WHERE uniqueColumns.un_id = uniqueInfo.id AND uniqueInfo.table = ?";
+ final String queryWithSchema =
+ query + " AND uniqueInfo.schema = ?";
+
Table table = super.readTable(metaData, values);
if (table != null)
{
- // Mckoi does not currently return unique indices in the metadata so we have to query
- // internal tables to get this info
- StringBuffer query = new StringBuffer();
-
- query.append("SELECT uniqueColumns.column, uniqueColumns.seq_no, uniqueInfo.name");
- query.append(" FROM SYS_INFO.sUSRUniqueColumns uniqueColumns, SYS_INFO.sUSRUniqueInfo uniqueInfo");
- query.append(" WHERE uniqueColumns.un_id = uniqueInfo.id AND uniqueInfo.table = '");
- query.append(table.getName());
- if (table.getSchema() != null)
+ Map indices = new ListOrderedMap();
+ PreparedStatement stmt = null;
+
+ try
{
- query.append("' AND uniqueInfo.schema = '");
- query.append(table.getSchema());
+ stmt = getConnection().prepareStatement(table.getSchema() == null ? query : queryWithSchema);
+ stmt.setString(1, table.getName());
+ if (table.getSchema() != null)
+ {
+ stmt.setString(2, table.getSchema());
+ }
+
+ ResultSet resultSet = stmt.executeQuery();
+ Map indexValues = new HashMap();
+
+ indexValues.put("NON_UNIQUE", Boolean.FALSE);
+ while (resultSet.next())
+ {
+ indexValues.put("COLUMN_NAME", resultSet.getString(1));
+ indexValues.put("ORDINAL_POSITION", new Short(resultSet.getShort(2)));
+ indexValues.put("INDEX_NAME", resultSet.getString(3));
+
+ readIndex(metaData, indexValues, indices);
+ }
}
- query.append("'");
-
- Statement stmt = getConnection().createStatement();
- ResultSet resultSet = stmt.executeQuery(query.toString());
- Map indices = new ListOrderedMap();
- Map indexValues = new HashMap();
-
- indexValues.put("NON_UNIQUE", Boolean.FALSE);
- while (resultSet.next())
+ finally
{
- indexValues.put("COLUMN_NAME", resultSet.getString(1));
- indexValues.put("ORDINAL_POSITION", new Short(resultSet.getShort(2)));
- indexValues.put("INDEX_NAME", resultSet.getString(3));
-
- readIndex(metaData, indexValues, indices);
+ closeStatement(stmt);
}
- resultSet.close();
table.addIndices(indices.values());
}
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mckoi/MckoiPlatform.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mckoi/MckoiPlatform.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mckoi/MckoiPlatform.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mckoi/MckoiPlatform.java Sun Feb 24 18:17:57 2008
@@ -69,15 +69,15 @@
info.setDefaultValueUsedForIdentitySpec(true);
info.setAutoCommitModeForLastIdentityValueReading(false);
- info.addNativeTypeMapping(Types.ARRAY, "BLOB", Types.BLOB);
- info.addNativeTypeMapping(Types.DISTINCT, "BLOB", Types.BLOB);
- info.addNativeTypeMapping(Types.FLOAT, "DOUBLE", Types.DOUBLE);
- info.addNativeTypeMapping(Types.NULL, "BLOB", Types.BLOB);
- info.addNativeTypeMapping(Types.OTHER, "BLOB", Types.BLOB);
- info.addNativeTypeMapping(Types.REF, "BLOB", Types.BLOB);
- info.addNativeTypeMapping(Types.STRUCT, "BLOB", Types.BLOB);
- info.addNativeTypeMapping("BIT", "BOOLEAN", "BOOLEAN");
- info.addNativeTypeMapping("DATALINK", "BLOB", "BLOB");
+ info.addNativeTypeMapping(Types.ARRAY, "BLOB", Types.BLOB);
+ info.addNativeTypeMapping(Types.BIT, "BOOLEAN", Types.BOOLEAN);
+ info.addNativeTypeMapping(Types.DATALINK, "BLOB", Types.BLOB);
+ info.addNativeTypeMapping(Types.DISTINCT, "BLOB", Types.BLOB);
+ info.addNativeTypeMapping(Types.FLOAT, "DOUBLE", Types.DOUBLE);
+ info.addNativeTypeMapping(Types.NULL, "BLOB", Types.BLOB);
+ info.addNativeTypeMapping(Types.OTHER, "BLOB", Types.BLOB);
+ info.addNativeTypeMapping(Types.REF, "BLOB", Types.BLOB);
+ info.addNativeTypeMapping(Types.STRUCT, "BLOB", Types.BLOB);
info.setDefaultSize(Types.CHAR, 1024);
info.setDefaultSize(Types.VARCHAR, 1024);
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mssql/MSSqlBuilder.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mssql/MSSqlBuilder.java?rev=630717&r1=630716&r2=630717&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mssql/MSSqlBuilder.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/mssql/MSSqlBuilder.java Sun Feb 24 18:17:57 2008
@@ -34,7 +34,6 @@
import org.apache.ddlutils.model.Index;
import org.apache.ddlutils.model.Table;
import org.apache.ddlutils.platform.SqlBuilder;
-import org.apache.ddlutils.util.Jdbc3Utils;
/**
* The SQL Builder for the Microsoft SQL Server.
@@ -188,10 +187,9 @@
protected String getNativeDefaultValue(Column column)
{
// Sql Server wants BIT default values as 0 or 1
- if ((column.getTypeCode() == Types.BIT) ||
- (Jdbc3Utils.supportsJava14JdbcTypes() && (column.getTypeCode() == Jdbc3Utils.determineBooleanTypeCode())))
+ if ((column.getTypeCode() == Types.BIT) || (column.getTypeCode() == Types.BOOLEAN))
{
- return getDefaultValueHelper().convert(column.getDefaultValue(), column.getTypeCode(), Types.SMALLINT).toString();
+ return getDefaultValueHelper().convert(column.getDefaultValue(), column.getTypeCode(), Types.SMALLINT);
}
else
{