]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
checking in patch for column labels limit at 30 chars...what the heck
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 6 Mar 2006 23:15:47 +0000 (23:15 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 6 Mar 2006 23:15:47 +0000 (23:15 +0000)
lib/sqlalchemy/sql.py

index d4312a151d5741beb3cd3ded44837910a5a54193..bb3a1039c02447ce92d908baaccdf5aa9fa96ba0 100644 (file)
@@ -953,6 +953,7 @@ class Label(ColumnElement):
         self.obj = obj
         obj.parens=True
     key = property(lambda s: s.name)
+    
     _label = property(lambda s: s.name)
     original = property(lambda s:s.obj.original)
     parent = property(lambda s:s.obj.parent)
@@ -971,11 +972,16 @@ class ColumnClause(ColumnElement):
         self.key = self.name = self.text = text
         self.table = selectable
         self.type = type or sqltypes.NullTypeEngine()
+        self.__label = None
     def _get_label(self):
-        if self.table is not None:
-            return self.table.name + "_" + self.text
-        else:
-            return self.text
+        if self.__label is None:
+            if self.table is not None:
+                self.__label =  self.table.name + "_" + self.text
+            else:
+                self.__label = self.text
+            if len(self.__label) >= 30:
+                self.__label = self.__label[0:24] + "_" + hex(random.randint(0, 65535))[2:]
+        return self.__label
     _label = property(_get_label)
     def accept_visitor(self, visitor): 
         visitor.visit_column(self)