]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
column label generation checks for a conflict against a column named the same as...
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 26 Mar 2006 15:36:43 +0000 (15:36 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sun, 26 Mar 2006 15:36:43 +0000 (15:36 +0000)
comment in mapper

lib/sqlalchemy/mapping/mapper.py
lib/sqlalchemy/sql.py

index 82257ae6239ccf256e14ac6307df7529e69e5f96..1efdb649a3aefc15eaa08ceb3f85cdf4b41f3299 100644 (file)
@@ -998,8 +998,8 @@ class MapperExtension(object):
         
         Essentially, this method is used to have a different mapper populate the object:
         
-            def populate_instance(self, mapper, *args):
-                othermapper.populate_instance(*args)
+            def populate_instance(self, mapper, instance, row, identitykey, imap, isnew):
+                othermapper.populate_instance(instance, row, identitykey, imap, isnew, frommapper=mapper)
                 return False
         """
         if self.next is None:
index c4cb4d1486f6ae679629da97dc12f77dc000b503..6116a44e152e25a60e938724bf991f7648bf1d43 100644 (file)
@@ -1024,7 +1024,7 @@ class ColumnClause(ColumnElement):
                 self.__label =  self.table.name + "_" + self.text
             else:
                 self.__label = self.text
-            if len(self.__label) >= 30:
+            if (self.table is not None and self.table.c.has_key(self.__label)) or len(self.__label) >= 30:
                 self.__label = self.__label[0:24] + "_" + hex(random.randint(0, 65535))[2:]
         return self.__label
     _label = property(_get_label)