From b99bdc7cee1080e6fd86451c5def2410a697c0b9 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 13 Jan 2009 15:38:38 +0000 Subject: - Column with no name (as in declarative) won't raise a NoneType error when it's string output is requsted (such as in a stack trace). --- lib/sqlalchemy/ext/declarative.py | 1 + lib/sqlalchemy/schema.py | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'lib/sqlalchemy') diff --git a/lib/sqlalchemy/ext/declarative.py b/lib/sqlalchemy/ext/declarative.py index a5cb6e9d2..70f50622d 100644 --- a/lib/sqlalchemy/ext/declarative.py +++ b/lib/sqlalchemy/ext/declarative.py @@ -737,3 +737,4 @@ def _undefer_column_name(key, column): column.key = key if column.name is None: column.name = key + util.reset_memoized(column, 'description') \ No newline at end of file diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index b8a36ebb5..792a7e923 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -617,9 +617,16 @@ class Column(SchemaItem, expression.ColumnClause): else: return self.description + @util.memoized_property + def description(self): + if not self.name: + return "(no name)" + else: + return self.name.encode('ascii', 'backslashreplace') + + @property def bind(self): return self.table.bind - bind = property(bind) def references(self, column): """Return True if this Column references the given column via foreign key.""" -- cgit v1.2.1