diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-01-21 03:41:35 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-01-21 03:41:35 +0000 |
| commit | cd70a420072a736f57d8f0e1f07067a0aa9d1fe3 (patch) | |
| tree | e3db1edd3366441bf1f74dcc6ad74f9a9f099306 /lib/sqlalchemy/dialects | |
| parent | da21efabb4ed3aaa180349b7d1d53cb1d9d59a50 (diff) | |
| download | sqlalchemy-cd70a420072a736f57d8f0e1f07067a0aa9d1fe3.tar.gz | |
base supports_native_enum on 8.3 or greater
Diffstat (limited to 'lib/sqlalchemy/dialects')
| -rw-r--r-- | lib/sqlalchemy/dialects/postgresql/base.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py index 2c8f896e9..bc5459f3a 100644 --- a/lib/sqlalchemy/dialects/postgresql/base.py +++ b/lib/sqlalchemy/dialects/postgresql/base.py @@ -450,7 +450,7 @@ class PGTypeCompiler(compiler.GenericTypeCompiler): return self.visit_TIMESTAMP(type_) def visit_enum(self, type_): - if not type_.native_enum: + if not type_.native_enum or not self.dialect.supports_native_enum: return super(PGTypeCompiler, self).visit_enum(type_) else: return self.visit_ENUM(type_) @@ -589,7 +589,11 @@ class PGDialect(default.DefaultDialect): super(PGDialect, self).initialize(connection) self.implicit_returning = self.server_version_info > (8, 2) and \ self.__dict__.get('implicit_returning', True) - + self.supports_native_enum = self.server_version_info >= (8, 3) + if not self.supports_native_enum: + self.colspecs = self.colspecs.copy() + del self.colspecs[ENUM] + def visit_pool(self, pool): if self.isolation_level is not None: class SetIsolationLevel(object): @@ -1047,6 +1051,9 @@ class PGDialect(default.DefaultDialect): return indexes def _load_enums(self, connection): + if not self.supports_native_enum: + return {} + ## Load data types for enums: SQL_ENUMS = """ SELECT t.typname as "name", |
