Author: tomdz
Date: Sun Dec 17 16:16:19 2006
New Revision: 488085
URL: http://svn.apache.org/viewvc?view=rev&rev=488085
Log:
Identity override is now off by default
Exposed controlling identity override in the WriteDataToDatabase subtask
Modified:
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteDataToDatabaseCommand.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestMisc.java
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?view=diff&rev=488085&r1=488084&r2=488085
==============================================================================
---
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java
(original)
+++
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java
Sun Dec 17 16:16:19 2006
@@ -86,7 +86,7 @@
/** Whether delimited identifiers are used or not. */
private boolean _delimitedIdentifierModeOn;
/** Whether identity override is enabled. */
- private boolean _identityOverrideOn = true;
+ private boolean _identityOverrideOn;
/** Whether read foreign keys shall be sorted alphabetically. */
private boolean _foreignKeysSorted;
Modified:
db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteDataToDatabaseCommand.java
URL:
http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteDataToDatabaseCommand.java?view=diff&rev=488085&r1=488084&r2=488085
==============================================================================
---
db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteDataToDatabaseCommand.java
(original)
+++
db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteDataToDatabaseCommand.java
Sun Dec 17 16:16:19 2006
@@ -54,7 +54,26 @@
private File _singleDataFile = null;
/** The input files. */
private ArrayList _fileSets = new ArrayList();
-
+ /** Whether explicit values for identity columns will be used. */
+ private boolean _useExplicitIdentityValues;
+
+ /**
+ * Defines whether values for identity columns in the data XML shall be
used instead of
+ * letting the database define the value. Unless
<code>ensureForeignKeyOrder</code> is
+ * set to false, setting this to <code>false</code> (the default) does not
affect foreign
+ * keys as DdlUtils will automatically update the values of the columns of
foreign keys
+ * pointing to the inserted row with the database-created values.
+ *
+ * @param useExplicitIdentityValues <code>true</code> if explicitly
specified identity
+ * column values should be inserted
instead of letting
+ * the database define the values for
these columns
+ * @ant.not-required Default is <code>false</code>
+ */
+ public void setUseExplicitIdentityValues(boolean useExplicitIdentityValues)
+ {
+ _useExplicitIdentityValues = useExplicitIdentityValues;
+ }
+
/**
* Adds a fileset.
*
@@ -132,6 +151,7 @@
DataReader dataReader = null;
+ getPlatform().setIdentityOverrideOn(_useExplicitIdentityValues);
try
{
dataReader = getDataIO().getConfiguredDataReader(getPlatform(),
model);
Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestMisc.java
URL:
http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestMisc.java?view=diff&rev=488085&r1=488084&r2=488085
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestMisc.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestMisc.java Sun Dec 17
16:16:19 2006
@@ -77,6 +77,8 @@
createDatabase(modelXml);
+ getPlatform().setIdentityOverrideOn(true);
+
insertRow("misc1", new Object[] { new Integer(10), new Integer(1) });
insertRow("misc1", new Object[] { new Integer(12), new Integer(2) });
insertRow("misc1", new Object[] { new Integer(13), new Integer(3) });
@@ -159,6 +161,12 @@
*/
public void testIdentityOverrideOff() throws Exception
{
+ if (!getPlatformInfo().isIdentityOverrideAllowed())
+ {
+ // TODO: for testing these platforms, we need deleteRows
+ return;
+ }
+
final String modelXml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
@@ -176,6 +184,8 @@
"</database>";
createDatabase(modelXml);
+
+ getPlatform().setIdentityOverrideOn(true);
insertRow("misc1", new Object[] { new Integer(10), new Integer(1) });
insertRow("misc1", new Object[] { new Integer(12), new Integer(2) });