Fix for DDLUTILS-173

git-svn-id: https://svn.apache.org/repos/asf/db/ddlutils/trunk@532976 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/java/org/apache/ddlutils/platform/sybase/SybaseBuilder.java b/src/java/org/apache/ddlutils/platform/sybase/SybaseBuilder.java
index 76058c7..fead4ab 100644
--- a/src/java/org/apache/ddlutils/platform/sybase/SybaseBuilder.java
+++ b/src/java/org/apache/ddlutils/platform/sybase/SybaseBuilder.java
@@ -73,7 +73,79 @@
         super.createTable(database, table, parameters);
     }
 
-	/**
+    /**
+     * {@inheritDoc}
+     */
+	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);
+    }
+
+    /**
 	 * {@inheritDoc}
 	 */
 	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);