Revision: 3266
Author: [email protected]
Date: Fri Feb  5 10:47:31 2010
Log: Fixed DDL generation bug: logical column name was used instead of the physical name
http://code.google.com/p/power-architect/source/detail?r=3266

Modified:
 /trunk/src/ca/sqlpower/architect/ddl/GenericDDLGenerator.java
 /trunk/src/ca/sqlpower/architect/ddl/MySqlDDLGenerator.java
 /trunk/src/ca/sqlpower/architect/ddl/OracleDDLGenerator.java
 /trunk/src/ca/sqlpower/architect/ddl/PostgresDDLGenerator.java
 /trunk/src/ca/sqlpower/architect/ddl/SQLServerDDLGenerator.java

=======================================
--- /trunk/src/ca/sqlpower/architect/ddl/GenericDDLGenerator.java Mon Jan 18 11:55:38 2010 +++ /trunk/src/ca/sqlpower/architect/ddl/GenericDDLGenerator.java Fri Feb 5 10:47:31 2010
@@ -1367,7 +1367,7 @@
         boolean first = true;
for (SQLIndex.Column c : (List<SQLIndex.Column>) index.getChildren()) {
             if (!first) print(", ");
-            print(c.getName());
+            print(c.getColumn().getPhysicalName());
print(c.getAscendingOrDescending() == AscendDescend.ASCENDING ? " ASC" : ""); print(c.getAscendingOrDescending() == AscendDescend.DESCENDING ? " DESC" : "");
             first = false;
=======================================
--- /trunk/src/ca/sqlpower/architect/ddl/MySqlDDLGenerator.java Tue Jan 19 10:45:11 2010 +++ /trunk/src/ca/sqlpower/architect/ddl/MySqlDDLGenerator.java Fri Feb 5 10:47:31 2010
@@ -437,7 +437,7 @@
for (SQLIndex.Column c : (List<SQLIndex.Column>) index.getChildren()) {
             if (!first)
                 print(", ");
-            print(c.getName());
+            print(c.getColumn().getPhysicalName());
print(c.getAscendingOrDescending() == AscendDescend.ASCENDING ? " ASC" : ""); print(c.getAscendingOrDescending() == AscendDescend.DESCENDING ? " DESC" : "");
             first = false;
=======================================
--- /trunk/src/ca/sqlpower/architect/ddl/OracleDDLGenerator.java Mon Dec 21 08:27:43 2009 +++ /trunk/src/ca/sqlpower/architect/ddl/OracleDDLGenerator.java Fri Feb 5 10:47:31 2010
@@ -32,6 +32,7 @@
 import ca.sqlpower.sqlobject.SQLObjectException;
 import ca.sqlpower.sqlobject.SQLColumn;
 import ca.sqlpower.sqlobject.SQLIndex;
+import ca.sqlpower.sqlobject.SQLIndex.AscendDescend;
 import ca.sqlpower.sqlobject.SQLRelationship;
 import ca.sqlpower.sqlobject.SQLSequence;
 import ca.sqlpower.sqlobject.SQLTable;
@@ -350,7 +351,8 @@
         if (index.isUnique()) {
             print("UNIQUE ");
         }
-        if(index.getType() != null && index.getType().equals("BITMAP")) {
+ boolean isBitmapIndex = index.getType() != null && index.getType().equals("BITMAP");
+        if(isBitmapIndex) {
             print("BITMAP ");
         }
         print("INDEX ");
@@ -362,8 +364,11 @@
         boolean first = true;
for (SQLIndex.Column c : (List<SQLIndex.Column>) index.getChildren()) {
             if (!first) print(", ");
-            print(c.getName());
- //TODO: Note: Oracle does not seem to use ASC/DES similar to PostgreSQL
+            print(c.getRealName());
+                       if (!isBitmapIndex) {
+ print(c.getAscendingOrDescending() == AscendDescend.ASCENDING ? " ASC" : ""); + print(c.getAscendingOrDescending() == AscendDescend.DESCENDING ? " DESC" : "");
+                       }
             first = false;
         }

=======================================
--- /trunk/src/ca/sqlpower/architect/ddl/PostgresDDLGenerator.java Mon Dec 21 08:27:43 2009 +++ /trunk/src/ca/sqlpower/architect/ddl/PostgresDDLGenerator.java Fri Feb 5 10:47:31 2010
@@ -33,6 +33,7 @@
 import ca.sqlpower.sqlobject.SQLObjectException;
 import ca.sqlpower.sqlobject.SQLColumn;
 import ca.sqlpower.sqlobject.SQLIndex;
+import ca.sqlpower.sqlobject.SQLIndex.AscendDescend;
 import ca.sqlpower.sqlobject.SQLSequence;
 import ca.sqlpower.sqlobject.SQLTable;

@@ -349,9 +350,13 @@
         boolean first = true;
for (SQLIndex.Column c : (List<SQLIndex.Column>) index.getChildren()) {
             if (!first) print(", ");
-            print(c.getName());
+            print(c.getColumn().getPhysicalName());
//TODO: ASC and DESC are not supported in the current version of PostgreSQL (8.2.3) //but is expected to be added in later versions (8.3 for example)
+                       //Thomas Kellerer: ASC/DESC is available since 8.3.0...
+ print(c.getAscendingOrDescending() == AscendDescend.ASCENDING ? " ASC" : ""); + print(c.getAscendingOrDescending() == AscendDescend.DESCENDING ? " DESC" : "");
+
             first = false;
         }

=======================================
--- /trunk/src/ca/sqlpower/architect/ddl/SQLServerDDLGenerator.java Mon Dec 21 08:27:43 2009 +++ /trunk/src/ca/sqlpower/architect/ddl/SQLServerDDLGenerator.java Fri Feb 5 10:47:31 2010
@@ -472,7 +472,7 @@
         boolean first = true;
for (SQLIndex.Column c : (List<SQLIndex.Column>) index.getChildren()) {
             if (!first) print(", ");
-            print(c.getName());
+            print(c.getColumn().getPhysicalName());
             first = false;
         }
         print(" )\n");

Reply via email to