diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-06-27 16:08:42 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-06-27 16:08:42 -0400 |
commit | 01215cdaef4579b5d0806abd060a2dd90acabf9b (patch) | |
tree | 11fecd63452d91e8eae8c95c5e64a7db6b5e8102 /lib/sqlalchemy | |
parent | 3d7cd1741b02d5c0e2ca08d7437759cda7c2a9be (diff) | |
download | sqlalchemy-01215cdaef4579b5d0806abd060a2dd90acabf9b.tar.gz |
- Fixed a bug within the custom operator plus :meth:`.TypeEngine.with_variant`
system, whereby using a :class:`.TypeDecorator` in conjunction with
variant would fail with an MRO error when a comparison operator was used.
fixes #3102
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r-- | lib/sqlalchemy/sql/type_api.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/sqlalchemy/sql/type_api.py b/lib/sqlalchemy/sql/type_api.py index 48b447b37..444366bc0 100644 --- a/lib/sqlalchemy/sql/type_api.py +++ b/lib/sqlalchemy/sql/type_api.py @@ -631,8 +631,8 @@ class TypeDecorator(TypeEngine): @property def comparator_factory(self): return type("TDComparator", - (TypeDecorator.Comparator, self.impl.comparator_factory), - {}) + (TypeDecorator.Comparator, self.impl.comparator_factory), + {}) def _gen_dialect_impl(self, dialect): """ @@ -1026,6 +1026,11 @@ class Variant(TypeDecorator): mapping[dialect_name] = type_ return Variant(self.impl, mapping) + @property + def comparator_factory(self): + """express comparison behavior in terms of the base type""" + return self.impl.comparator_factory + def _reconstitute_comparator(expression): return expression.comparator |