diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2022-10-21 12:37:04 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2022-10-21 12:37:04 -0400 |
commit | e9df3e8de0caaea20ddf0ab7f46b1110ba6dd0e9 (patch) | |
tree | 54b88684c3f0bc61f86a3aae7b7821c1ef49ce08 /lib/sqlalchemy/dialects/postgresql/asyncpg.py | |
parent | 2fc5cf56a4b146b94b5dd14239a791e354d7ebe4 (diff) | |
download | sqlalchemy-e9df3e8de0caaea20ddf0ab7f46b1110ba6dd0e9.tar.gz |
Only convert Range for sqlalchemy Range object
Refined the new approach to range objects described at :ref:`change_7156`
to accommodate driver-specific range and multirange objects, to better
accommodate both legacy code as well as when passing results from raw SQL
result sets back into new range or multirange expressions.
Fixes: #8690
Change-Id: I7e62c47067f695c6380ad0fe2fe19deaf33594d1
Diffstat (limited to 'lib/sqlalchemy/dialects/postgresql/asyncpg.py')
-rw-r--r-- | lib/sqlalchemy/dialects/postgresql/asyncpg.py | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/asyncpg.py b/lib/sqlalchemy/dialects/postgresql/asyncpg.py index 96bac59d9..cd161d28e 100644 --- a/lib/sqlalchemy/dialects/postgresql/asyncpg.py +++ b/lib/sqlalchemy/dialects/postgresql/asyncpg.py @@ -293,13 +293,11 @@ class AsyncpgCHAR(sqltypes.CHAR): class _AsyncpgRange(ranges.AbstractRangeImpl): def bind_processor(self, dialect): - Range = dialect.dbapi.asyncpg.Range - - NoneType = type(None) + asyncpg_Range = dialect.dbapi.asyncpg.Range def to_range(value): - if not isinstance(value, (str, NoneType)): - value = Range( + if isinstance(value, ranges.Range): + value = asyncpg_Range( value.lower, value.upper, lower_inc=value.bounds[0] == "[", @@ -328,7 +326,7 @@ class _AsyncpgRange(ranges.AbstractRangeImpl): class _AsyncpgMultiRange(ranges.AbstractMultiRangeImpl): def bind_processor(self, dialect): - Range = dialect.dbapi.asyncpg.Range + asyncpg_Range = dialect.dbapi.asyncpg.Range NoneType = type(None) @@ -337,8 +335,8 @@ class _AsyncpgMultiRange(ranges.AbstractMultiRangeImpl): return value def to_range(value): - if not isinstance(value, (str, NoneType)): - value = Range( + if isinstance(value, ranges.Range): + value = asyncpg_Range( value.lower, value.upper, lower_inc=value.bounds[0] == "[", |