From cf2e91eb95f9800ccd0a1c6de040ecc74da01063 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 3 Jul 2007 21:21:11 +0000 Subject: [PATCH] - added NullType to export list - any NullType will trigger the "get col type from FK logic", though there are other issues with this logic (requires the FK be initialized) - added INT to sqlite resolution map - adjusted sqlsoup for sql.Select api changes --- lib/sqlalchemy/databases/sqlite.py | 1 + lib/sqlalchemy/ext/sqlsoup.py | 2 +- lib/sqlalchemy/schema.py | 3 ++- lib/sqlalchemy/types.py | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/sqlalchemy/databases/sqlite.py b/lib/sqlalchemy/databases/sqlite.py index a5328cfcf2..0fd31928af 100644 --- a/lib/sqlalchemy/databases/sqlite.py +++ b/lib/sqlalchemy/databases/sqlite.py @@ -126,6 +126,7 @@ colspecs = { pragma_names = { 'INTEGER' : SLInteger, + 'INT' : SLInteger, 'SMALLINT' : SLSmallInteger, 'VARCHAR' : SLString, 'CHAR' : SLChar, diff --git a/lib/sqlalchemy/ext/sqlsoup.py b/lib/sqlalchemy/ext/sqlsoup.py index 15be667090..a9b93bc564 100644 --- a/lib/sqlalchemy/ext/sqlsoup.py +++ b/lib/sqlalchemy/ext/sqlsoup.py @@ -425,7 +425,7 @@ def _selectable_name(selectable): if isinstance(selectable, sql.Alias): return _selectable_name(selectable.selectable) elif isinstance(selectable, sql.Select): - return ''.join([_selectable_name(s) for s in selectable.get_display_froms()]) + return ''.join([_selectable_name(s) for s in selectable.froms]) elif isinstance(selectable, schema.Table): return selectable.name.capitalize() else: diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index f67278d7c6..12568bd4b5 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -716,8 +716,9 @@ class ForeignKey(SchemaItem): raise exceptions.ArgumentError("Could not create ForeignKey '%s' on table '%s': table '%s' has no column named '%s'" % (self._colspec, parenttable.name, table.name, str(e))) else: self._column = self._colspec + # propigate TypeEngine to parent if it didnt have one - if self.parent.type is types.NULLTYPE: + if isinstance(self.parent.type, types.NullType): self.parent.type = self._column.type return self._column diff --git a/lib/sqlalchemy/types.py b/lib/sqlalchemy/types.py index 7dcc44eccb..d1ede61c50 100644 --- a/lib/sqlalchemy/types.py +++ b/lib/sqlalchemy/types.py @@ -7,7 +7,7 @@ __all__ = [ 'TypeEngine', 'TypeDecorator', 'NullTypeEngine', 'INT', 'CHAR', 'VARCHAR', 'NCHAR', 'TEXT', 'FLOAT', 'DECIMAL', 'TIMESTAMP', 'DATETIME', 'CLOB', 'BLOB', 'BOOLEAN', 'String', 'Integer', 'SmallInteger','Smallinteger', - 'Numeric', 'Float', 'DateTime', 'Date', 'Time', 'Binary', 'Boolean', 'Unicode', 'PickleType', 'NULLTYPE', + 'Numeric', 'Float', 'DateTime', 'Date', 'Time', 'Binary', 'Boolean', 'Unicode', 'PickleType', 'NULLTYPE', 'NullType', 'SMALLINT', 'DATE', 'TIME','Interval' ] -- 2.47.3