Author: tomdz
Date: Thu Apr 26 22:58:01 2007
New Revision: 532976
URL: http://svn.apache.org/viewvc?view=rev&rev=532976
Log:
Fix for DDLUTILS-173
Modified:
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sybase/SybaseBuilder.java
Modified:
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sybase/SybaseBuilder.java
URL:
http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sybase/SybaseBuilder.java?view=diff&rev=532976&r1=532975&r2=532976
==============================================================================
---
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sybase/SybaseBuilder.java
(original)
+++
db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/sybase/SybaseBuilder.java
Thu Apr 26 22:58:01 2007
@@ -73,7 +73,79 @@
super.createTable(database, table, parameters);
}
- /**
+ /**
+ * [EMAIL PROTECTED]
+ */
+ protected void writeTableCreationStmtEnding(Table table, Map
parameters) throws IOException
+ {
+ if (parameters != null)
+ {
+ // We support
+ // - 'lock'
+ // - 'at'
+ // - 'external table at'
+ // - 'on'
+ // - with parameters as name value pairs
+
+ String lockValue = (String)parameters.get("lock");
+ String atValue = (String)parameters.get("at");
+ String externalTableAtValue = (String)parameters.get("external
table at");
+ String onValue = (String)parameters.get("on");
+
+ if (lockValue != null)
+ {
+ print(" lock ");
+ print(lockValue);
+ }
+
+ boolean writtenWithParameters = false;
+
+ for (Iterator it = parameters.entrySet().iterator(); it.hasNext();)
+ {
+ Map.Entry entry = (Map.Entry)it.next();
+ String name = entry.getKey().toString();
+
+ if (!"lock".equals(name) && !"at".equals(name) && !"external
table at".equals(name) && !"on".equals(name))
+ {
+ if (!writtenWithParameters)
+ {
+ print(" with ");
+ writtenWithParameters = true;
+ }
+ else
+ {
+ print(", ");
+ }
+ print(name);
+ if (entry.getValue() != null)
+ {
+ print("=");
+ print(entry.getValue().toString());
+ }
+ }
+ }
+ if (onValue != null)
+ {
+ print(" on ");
+ print(onValue);
+ }
+ if (externalTableAtValue != null)
+ {
+ print(" external table at \"");
+ print(externalTableAtValue);
+ print("\"");
+ }
+ else if (atValue != null)
+ {
+ print(" at \"");
+ print(atValue);
+ print("\"");
+ }
+ }
+ super.writeTableCreationStmtEnding(table, parameters);
+ }
+
+ /**
* [EMAIL PROTECTED]
*/
protected void writeColumn(Table table, Column column) throws
IOException
@@ -356,7 +428,7 @@
{
AddColumnChange addColumnChange = (AddColumnChange)change;
- // Oracle can only add not insert columns
+ // Sybase can only add not insert columns
if (addColumnChange.isAtEnd())
{
processChange(currentModel, desiredModel, addColumnChange);