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 2007/03/18 04:58:28 UTC
svn commit: r519537 - in /db/ddlutils/trunk/src: java/org/apache/ddlutils/
java/org/apache/ddlutils/platform/maxdb/
java/org/apache/ddlutils/platform/sapdb/ test/
test/org/apache/ddlutils/platform/
Author: tomdz
Date: Sat Mar 17 20:58:27 2007
New Revision: 519537
URL: http://svn.apache.org/viewvc?view=rev&rev=519537
Log:
Created a proper SapDb platform
Added:
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/maxdb/MaxDbBuilder.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/maxdb/MaxDbModelReader.java
db/ddlutils/trunk/src/test/jdbc.properties.sapdb
Modified:
db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformUtils.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/maxdb/MaxDbPlatform.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sapdb/SapDbBuilder.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sapdb/SapDbModelReader.java
db/ddlutils/trunk/src/test/jdbc.properties.maxdb
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestPlatformUtils.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestSapDbPlatform.java
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformUtils.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformUtils.java?view=diff&rev=519537&r1=519536&r2=519537
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformUtils.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformUtils.java Sat Mar 17 20:58:27 2007
@@ -35,7 +35,6 @@
import org.apache.ddlutils.platform.firebird.FirebirdPlatform;
import org.apache.ddlutils.platform.hsqldb.HsqlDbPlatform;
import org.apache.ddlutils.platform.interbase.InterbasePlatform;
-import org.apache.ddlutils.platform.maxdb.MaxDbPlatform;
import org.apache.ddlutils.platform.mckoi.MckoiPlatform;
import org.apache.ddlutils.platform.mssql.MSSqlPlatform;
import org.apache.ddlutils.platform.mysql.MySqlPlatform;
@@ -150,7 +149,7 @@
jdbcSubProtocolToPlatform.put(FirebirdPlatform.JDBC_SUBPROTOCOL, FirebirdPlatform.DATABASENAME);
jdbcSubProtocolToPlatform.put(HsqlDbPlatform.JDBC_SUBPROTOCOL, HsqlDbPlatform.DATABASENAME);
jdbcSubProtocolToPlatform.put(InterbasePlatform.JDBC_SUBPROTOCOL, InterbasePlatform.DATABASENAME);
- jdbcSubProtocolToPlatform.put(SapDbPlatform.JDBC_SUBPROTOCOL, MaxDbPlatform.DATABASENAME);
+ jdbcSubProtocolToPlatform.put(SapDbPlatform.JDBC_SUBPROTOCOL, SapDbPlatform.DATABASENAME);
jdbcSubProtocolToPlatform.put(MckoiPlatform.JDBC_SUBPROTOCOL, MckoiPlatform.DATABASENAME);
jdbcSubProtocolToPlatform.put(MSSqlPlatform.JDBC_SUBPROTOCOL, MSSqlPlatform.DATABASENAME);
jdbcSubProtocolToPlatform.put(MSSqlPlatform.JDBC_SUBPROTOCOL_NEW, MSSqlPlatform.DATABASENAME);
@@ -196,7 +195,7 @@
jdbcDriverToPlatform.put(FirebirdPlatform.JDBC_DRIVER, FirebirdPlatform.DATABASENAME);
jdbcDriverToPlatform.put(HsqlDbPlatform.JDBC_DRIVER, HsqlDbPlatform.DATABASENAME);
jdbcDriverToPlatform.put(InterbasePlatform.JDBC_DRIVER, InterbasePlatform.DATABASENAME);
- jdbcDriverToPlatform.put(SapDbPlatform.JDBC_DRIVER, MaxDbPlatform.DATABASENAME);
+ jdbcDriverToPlatform.put(SapDbPlatform.JDBC_DRIVER, SapDbPlatform.DATABASENAME);
jdbcDriverToPlatform.put(MckoiPlatform.JDBC_DRIVER, MckoiPlatform.DATABASENAME);
jdbcDriverToPlatform.put(MSSqlPlatform.JDBC_DRIVER, MSSqlPlatform.DATABASENAME);
jdbcDriverToPlatform.put(MSSqlPlatform.JDBC_DRIVER_NEW, MSSqlPlatform.DATABASENAME);
Added: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/maxdb/MaxDbBuilder.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/maxdb/MaxDbBuilder.java?view=auto&rev=519537
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/maxdb/MaxDbBuilder.java (added)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/maxdb/MaxDbBuilder.java Sat Mar 17 20:58:27 2007
@@ -0,0 +1,102 @@
+package org.apache.ddlutils.platform.maxdb;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.IOException;
+
+import org.apache.ddlutils.Platform;
+import org.apache.ddlutils.model.Column;
+import org.apache.ddlutils.model.Database;
+import org.apache.ddlutils.model.ForeignKey;
+import org.apache.ddlutils.model.Table;
+import org.apache.ddlutils.platform.sapdb.SapDbBuilder;
+
+/**
+ * The SQL Builder for MaxDB.
+ *
+ * @version $Revision: $
+ */
+public class MaxDbBuilder extends SapDbBuilder
+{
+ /**
+ * Creates a new builder instance.
+ *
+ * @param platform The plaftform this builder belongs to
+ */
+ public MaxDbBuilder(Platform platform)
+ {
+ super(platform);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void writeExternalPrimaryKeysCreateStmt(Table table, Column[] primaryKeyColumns) throws IOException
+ {
+ if ((primaryKeyColumns.length > 0) && shouldGeneratePrimaryKeys(primaryKeyColumns))
+ {
+ print("ALTER TABLE ");
+ printlnIdentifier(getTableName(table));
+ printIndent();
+ print("ADD CONSTRAINT ");
+ printIdentifier(getConstraintName(null, table, "PK", null));
+ print(" ");
+ writePrimaryKeyStmt(table, primaryKeyColumns);
+ printEndOfStatement();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void writeExternalForeignKeyCreateStmt(Database database, Table table, ForeignKey key) throws IOException
+ {
+ if (key.getForeignTableName() == null)
+ {
+ _log.warn("Foreign key table is null for key " + key);
+ }
+ else
+ {
+ writeTableAlterStmt(table);
+
+ print("ADD CONSTRAINT ");
+ printIdentifier(getForeignKeyName(table, key));
+ print(" FOREIGN KEY (");
+ writeLocalReferences(key);
+ print(") REFERENCES ");
+ printIdentifier(getTableName(database.findTable(key.getForeignTableName())));
+ print(" (");
+ writeForeignReferences(key);
+ print(")");
+ printEndOfStatement();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void writeExternalForeignKeyDropStmt(Table table, ForeignKey foreignKey) throws IOException
+ {
+ writeTableAlterStmt(table);
+ print("DROP CONSTRAINT ");
+ printIdentifier(getForeignKeyName(table, foreignKey));
+ printEndOfStatement();
+ }
+}
Added: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/maxdb/MaxDbModelReader.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/maxdb/MaxDbModelReader.java?view=auto&rev=519537
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/maxdb/MaxDbModelReader.java (added)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/maxdb/MaxDbModelReader.java Sat Mar 17 20:58:27 2007
@@ -0,0 +1,85 @@
+package org.apache.ddlutils.platform.maxdb;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.sql.SQLException;
+import java.sql.Types;
+import java.util.Map;
+
+import org.apache.ddlutils.Platform;
+import org.apache.ddlutils.model.Column;
+import org.apache.ddlutils.platform.DatabaseMetaDataWrapper;
+import org.apache.ddlutils.platform.JdbcModelReader;
+
+/**
+ * Reads a database model from a MaxDb database.
+ *
+ * @version $Revision: $
+ */
+public class MaxDbModelReader extends JdbcModelReader
+{
+ /**
+ * Creates a new model reader for MaxDb databases.
+ *
+ * @param platform The platform that this model reader belongs to
+ */
+ public MaxDbModelReader(Platform platform)
+ {
+ super(platform);
+ setDefaultCatalogPattern(null);
+ setDefaultSchemaPattern(null);
+ setDefaultTablePattern("%");
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ protected Column readColumn(DatabaseMetaDataWrapper metaData, Map values) throws SQLException
+ {
+ Column column = super.readColumn(metaData, values);
+
+ if (column.getDefaultValue() != null)
+ {
+ // SapDb pads the default value with spaces
+ column.setDefaultValue(column.getDefaultValue().trim());
+ // SapDb uses the default value for the auto-increment specification
+ if (column.getDefaultValue().startsWith("DEFAULT SERIAL"))
+ {
+ column.setAutoIncrement(true);
+ column.setDefaultValue(null);
+ }
+ }
+ if (column.getTypeCode() == Types.DECIMAL)
+ {
+ // For some reason, the size will be reported with 2 byte more, e.g. 17 instead of 15
+ // So we have to adjust the size here
+ if (column.getSizeAsInt() > 2)
+ {
+ column.setSizeAndScale(column.getSizeAsInt() - 2, column.getScale());
+ }
+ // We also perform back-mapping to BIGINT
+ if ((column.getSizeAsInt() == 38) && (column.getScale() == 0))
+ {
+ column.setTypeCode(Types.BIGINT);
+ }
+ }
+ return column;
+ }
+}
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/maxdb/MaxDbPlatform.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/maxdb/MaxDbPlatform.java?view=diff&rev=519537&r1=519536&r2=519537
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/maxdb/MaxDbPlatform.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/maxdb/MaxDbPlatform.java Sat Mar 17 20:58:27 2007
@@ -35,6 +35,16 @@
public static final String DATABASENAME = "MaxDB";
/**
+ * Creates a new platform instance.
+ */
+ public MaxDbPlatform()
+ {
+ super();
+ setSqlBuilder(new MaxDbBuilder(this));
+ setModelReader(new MaxDbModelReader(this));
+ }
+
+ /**
* {@inheritDoc}
*/
public String getName()
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sapdb/SapDbBuilder.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sapdb/SapDbBuilder.java?view=diff&rev=519537&r1=519536&r2=519537
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sapdb/SapDbBuilder.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sapdb/SapDbBuilder.java Sat Mar 17 20:58:27 2007
@@ -35,6 +35,7 @@
import org.apache.ddlutils.alteration.TableChange;
import org.apache.ddlutils.model.Column;
import org.apache.ddlutils.model.Database;
+import org.apache.ddlutils.model.ForeignKey;
import org.apache.ddlutils.model.Table;
import org.apache.ddlutils.platform.SqlBuilder;
@@ -73,6 +74,60 @@
protected void writeColumnAutoIncrementStmt(Table table, Column column) throws IOException
{
print("DEFAULT SERIAL(1)");
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void writeExternalPrimaryKeysCreateStmt(Table table, Column[] primaryKeyColumns) throws IOException
+ {
+ // Note that SapDB does not support the addition of named primary keys
+ if ((primaryKeyColumns.length > 0) && shouldGeneratePrimaryKeys(primaryKeyColumns))
+ {
+ print("ALTER TABLE ");
+ printlnIdentifier(getTableName(table));
+ printIndent();
+ print("ADD ");
+ writePrimaryKeyStmt(table, primaryKeyColumns);
+ printEndOfStatement();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void writeExternalForeignKeyCreateStmt(Database database, Table table, ForeignKey key) throws IOException
+ {
+ if (key.getForeignTableName() == null)
+ {
+ _log.warn("Foreign key table is null for key " + key);
+ }
+ else
+ {
+ writeTableAlterStmt(table);
+
+ print(" ADD FOREIGN KEY ");
+ printIdentifier(getForeignKeyName(table, key));
+ print(" (");
+ writeLocalReferences(key);
+ print(") REFERENCES ");
+ printIdentifier(getTableName(database.findTable(key.getForeignTableName())));
+ print(" (");
+ writeForeignReferences(key);
+ print(")");
+ printEndOfStatement();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void writeExternalForeignKeyDropStmt(Table table, ForeignKey foreignKey) throws IOException
+ {
+ writeTableAlterStmt(table);
+ print("DROP FOREIGN KEY ");
+ printIdentifier(getForeignKeyName(table, foreignKey));
+ printEndOfStatement();
}
/**
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sapdb/SapDbModelReader.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sapdb/SapDbModelReader.java?view=diff&rev=519537&r1=519536&r2=519537
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sapdb/SapDbModelReader.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sapdb/SapDbModelReader.java Sat Mar 17 20:58:27 2007
@@ -68,12 +68,6 @@
}
if (column.getTypeCode() == Types.DECIMAL)
{
- // For some reason, the size will be reported with 2 byte more, e.g. 17 instead of 15
- // So we have to adjust the size here
- if (column.getSizeAsInt() > 2)
- {
- column.setSizeAndScale(column.getSizeAsInt() - 2, column.getScale());
- }
// We also perform back-mapping to BIGINT
if ((column.getSizeAsInt() == 38) && (column.getScale() == 0))
{
Modified: db/ddlutils/trunk/src/test/jdbc.properties.maxdb
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/jdbc.properties.maxdb?view=diff&rev=519537&r1=519536&r2=519537
==============================================================================
--- db/ddlutils/trunk/src/test/jdbc.properties.maxdb (original)
+++ db/ddlutils/trunk/src/test/jdbc.properties.maxdb Sat Mar 17 20:58:27 2007
@@ -1,9 +1,9 @@
-# JDBC properties for SapDB/MaxDB
+# JDBC properties for MaxDB
# Note: Properties starting with "datasource." will be fed into the datasource instance of the
# class configured via the datasource.class property
-# Use this property if ddlutils does not recognize the platform from the settings
-#ddlutils.platform=SapDB
+# You need to use this property, otherwise DdlUtils will detect SapDB instead (since the JDBC driver is the same)
+ddlutils.platform=MaxDB
#
# Using the plain DBCP datasource
Added: db/ddlutils/trunk/src/test/jdbc.properties.sapdb
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/jdbc.properties.sapdb?view=auto&rev=519537
==============================================================================
--- db/ddlutils/trunk/src/test/jdbc.properties.sapdb (added)
+++ db/ddlutils/trunk/src/test/jdbc.properties.sapdb Sat Mar 17 20:58:27 2007
@@ -0,0 +1,16 @@
+# JDBC properties for SapDB
+# Note: Properties starting with "datasource." will be fed into the datasource instance of the
+# class configured via the datasource.class property
+
+# Use this property if ddlutils does not recognize the platform from the settings
+#ddlutils.platform=SapDB
+
+#
+# Using the plain DBCP datasource
+#
+
+datasource.class=org.apache.commons.dbcp.BasicDataSource
+datasource.driverClassName=com.sap.dbtech.jdbc.DriverSapDB
+datasource.url=jdbc:sapdb://localhost/ddlutils
+datasource.username=dba
+datasource.password=dba
Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestPlatformUtils.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestPlatformUtils.java?view=diff&rev=519537&r1=519536&r2=519537
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestPlatformUtils.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestPlatformUtils.java Sat Mar 17 20:58:27 2007
@@ -19,6 +19,8 @@
* under the License.
*/
+import junit.framework.TestCase;
+
import org.apache.ddlutils.PlatformUtils;
import org.apache.ddlutils.platform.axion.AxionPlatform;
import org.apache.ddlutils.platform.cloudscape.CloudscapePlatform;
@@ -27,16 +29,14 @@
import org.apache.ddlutils.platform.firebird.FirebirdPlatform;
import org.apache.ddlutils.platform.hsqldb.HsqlDbPlatform;
import org.apache.ddlutils.platform.interbase.InterbasePlatform;
-import org.apache.ddlutils.platform.maxdb.MaxDbPlatform;
import org.apache.ddlutils.platform.mckoi.MckoiPlatform;
import org.apache.ddlutils.platform.mssql.MSSqlPlatform;
import org.apache.ddlutils.platform.mysql.MySqlPlatform;
import org.apache.ddlutils.platform.oracle.Oracle8Platform;
import org.apache.ddlutils.platform.postgresql.PostgreSqlPlatform;
+import org.apache.ddlutils.platform.sapdb.SapDbPlatform;
import org.apache.ddlutils.platform.sybase.SybasePlatform;
-import junit.framework.TestCase;
-
/**
* Tests the {@link org.apache.ddlutils.PlatformUtils} class.
*
@@ -372,20 +372,20 @@
}
/**
- * Tests the determination of the MaxDb platform via its JDBC driver.
+ * Tests the determination of the SapDb platform via its JDBC driver.
*/
- public void testMaxDbDriver()
+ public void testSapDbDriver()
{
- assertEquals(MaxDbPlatform.DATABASENAME,
+ assertEquals(SapDbPlatform.DATABASENAME,
_platformUtils.determineDatabaseType("com.sap.dbtech.jdbc.DriverSapDB", null));
}
/**
- * Tests the determination of the MaxDb platform via JDBC connection urls.
+ * Tests the determination of the SapDb platform via JDBC connection urls.
*/
- public void testMaxDbUrl()
+ public void testSapDbUrl()
{
- assertEquals(MaxDbPlatform.DATABASENAME,
+ assertEquals(SapDbPlatform.DATABASENAME,
_platformUtils.determineDatabaseType(null, "jdbc:sapdb://servermachine:9876/TST"));
}
Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestSapDbPlatform.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestSapDbPlatform.java?view=diff&rev=519537&r1=519536&r2=519537
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestSapDbPlatform.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestSapDbPlatform.java Sat Mar 17 20:58:27 2007
@@ -117,8 +117,8 @@
public void testTableConstraints() throws Exception
{
assertEqualsIgnoringWhitespaces(
- "ALTER TABLE \"table3\" DROP CONSTRAINT \"testfk\";\n"+
- "ALTER TABLE \"table2\" DROP CONSTRAINT \"table2_FK_COL_FK_COL_FK_2_table1\";\n"+
+ "ALTER TABLE \"table3\" DROP FOREIGN KEY \"testfk\";\n"+
+ "ALTER TABLE \"table2\" DROP FOREIGN KEY \"table2_FK_COL_FK_COL_FK_2_table1\";\n"+
"DROP TABLE \"table3\" CASCADE;\n"+
"DROP TABLE \"table2\" CASCADE;\n"+
"DROP TABLE \"table1\" CASCADE;\n"+
@@ -146,8 +146,8 @@
" \"COL_FK\" INTEGER NOT NULL,\n"+
" PRIMARY KEY (\"COL_PK\")\n"+
");\n"+
- "ALTER TABLE \"table2\" ADD CONSTRAINT \"table2_FK_COL_FK_COL_FK_2_table1\" FOREIGN KEY (\"COL_FK_1\", \"COL_FK_2\") REFERENCES \"table1\" (\"COL_PK_2\", \"COL_PK_1\");\n"+
- "ALTER TABLE \"table3\" ADD CONSTRAINT \"testfk\" FOREIGN KEY (\"COL_FK\") REFERENCES \"table2\" (\"COL_PK\");\n",
+ "ALTER TABLE \"table2\" ADD FOREIGN KEY \"table2_FK_COL_FK_COL_FK_2_table1\" (\"COL_FK_1\", \"COL_FK_2\") REFERENCES \"table1\" (\"COL_PK_2\", \"COL_PK_1\");\n"+
+ "ALTER TABLE \"table3\" ADD FOREIGN KEY \"testfk\" (\"COL_FK\") REFERENCES \"table2\" (\"COL_PK\");\n",
createTestDatabase(TABLE_CONSTRAINT_TEST_SCHEMA));
}