summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-03-06 23:15:47 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-03-06 23:15:47 +0000
commit2d596b61c06aca5409b4c219e267f152dc9e3293 (patch)
treea266e8c9d2dd5b86a6c38b182fd269b4b4e07f31 /lib/sqlalchemy/sql.py
parent97b1c3a59a8158a75f697faa3aae78875d9d6a61 (diff)
downloadsqlalchemy-2d596b61c06aca5409b4c219e267f152dc9e3293.tar.gz
checking in patch for column labels limit at 30 chars...what the heck
Diffstat (limited to 'lib/sqlalchemy/sql.py')
-rw-r--r--lib/sqlalchemy/sql.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/sqlalchemy/sql.py b/lib/sqlalchemy/sql.py
index d4312a151..bb3a1039c 100644
--- a/lib/sqlalchemy/sql.py
+++ b/lib/sqlalchemy/sql.py
@@ -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)