]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- added a Sequence to the unicode test tables to help Oracle
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 17 Feb 2007 02:31:56 +0000 (02:31 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 17 Feb 2007 02:31:56 +0000 (02:31 +0000)
- fixed named PrimaryKeyConstraint generation on oracle [ticket:466] courtesy andrija at gmail

CHANGES
lib/sqlalchemy/databases/oracle.py
test/orm/unitofwork.py
test/sql/constraints.py

diff --git a/CHANGES b/CHANGES
index 6e0224fc24248124d4b0e716120ba5e6cfbc4f88..05b9e49a19b028a1745df0ecd99f948931c75748 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -47,6 +47,7 @@
   - sequences on a non-pk column will properly fire off on INSERT
   - added PrefetchingResultProxy support to pre-fetch LOB columns when they are 
   known to be present, fixes [ticket:435]
+  - fixed named PrimaryKeyConstraint generation [ticket:466] courtesy andrija at gmail
 - mysql:
   - fix to reflection on older DB's that might return array() type for 
   "show variables like" statements
index 8f6ce4772ba819e2245432adc56a169669aa7f33..2d77946c46547e19a4fc4eb731502f5a4a6ae015 100644 (file)
@@ -485,6 +485,15 @@ class OracleSchemaGenerator(ansisql.ANSISchemaGenerator):
             self.append("CREATE SEQUENCE %s" % self.preparer.format_sequence(sequence))
             self.execute()
 
+    def visit_primary_key_constraint(self, constraint):
+        if len(constraint) == 0:
+            return
+        self.append(", \n\t")
+        if constraint.name is not None:
+            self.append("CONSTRAINT %s " % constraint.name)
+        self.append("PRIMARY KEY ")
+        self.append("(%s)" % (string.join([self.preparer.format_column(c) for c in constraint],', ')))
+     
 class OracleSchemaDropper(ansisql.ANSISchemaDropper):
     def visit_sequence(self, sequence):
         if self.engine.dialect.has_sequence(self.connection, sequence.name):
index b88325a7ff441cced48e3f28bd5c22c88aa1230b..f69519c139d3a298eda5448f6b1c5e2a639317ff 100644 (file)
@@ -188,10 +188,10 @@ class UnicodeTest(UnitOfWorkTest):
         global metadata, uni_table, uni_table2
         metadata = BoundMetaData(testbase.db)
         uni_table = Table('uni_test', metadata,
-            Column('id',  Integer, primary_key=True),
+            Column('id',  Integer, Sequence("uni_test_id_seq", optional=True), primary_key=True),
             Column('txt', Unicode(50), unique=True))
         uni_table2 = Table('uni2', metadata,
-            Column('id',  Integer, primary_key=True),
+            Column('id',  Integer, Sequence("uni2_test_id_seq", optional=True), primary_key=True),
             Column('txt', Unicode(50), ForeignKey(uni_table.c.txt)))
         metadata.create_all()
     def tearDownAll(self):
index 045d44968793b0d0cfeaf42ead38af6c3de3088d..886baef0cc27c617243c6cfdc3bd8004055178c7 100644 (file)
@@ -23,7 +23,7 @@ class ConstraintTest(testbase.AssertMixin):
             Column('stuff', String(30)),
             Column('emp_id', Integer),
             Column('emp_soc', String(40)),
-            PrimaryKeyConstraint('id'),
+            PrimaryKeyConstraint('id', name='elements_primkey'),
             ForeignKeyConstraint(['emp_id', 'emp_soc'], ['employees.id', 'employees.soc'])
             )
         metadata.create_all()