diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-10-12 11:14:14 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-10-12 12:03:40 -0400 |
commit | b2f2bf1acc5799221981d30c2bf9ed29d5ca6312 (patch) | |
tree | 8a01488f92012ab08d66b5392687c3bd497f8de1 /lib/sqlalchemy/dialects/postgresql/pg8000.py | |
parent | d0b5ce2ad4cb6149dbe3a378665c9c093da3f4f7 (diff) | |
download | sqlalchemy-b2f2bf1acc5799221981d30c2bf9ed29d5ca6312.tar.gz |
repair pg8000 and pin to 1.16.6 min version
Due to https://github.com/tlocke/pg8000/commit/3a2e7439ae3613367ec231218d7e0f541466d1e5
we no longer decode the description. pin to 1.16.6 as minimum version
so that we don't need to track version changes in code.
Change-Id: I192c851eb2337f37467560a3cbb87f7235884788
Diffstat (limited to 'lib/sqlalchemy/dialects/postgresql/pg8000.py')
-rw-r--r-- | lib/sqlalchemy/dialects/postgresql/pg8000.py | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/pg8000.py b/lib/sqlalchemy/dialects/postgresql/pg8000.py index 19570557c..b2faa4243 100644 --- a/lib/sqlalchemy/dialects/postgresql/pg8000.py +++ b/lib/sqlalchemy/dialects/postgresql/pg8000.py @@ -12,7 +12,7 @@ r""" :url: https://pypi.org/project/pg8000/ .. versionchanged:: 1.4 The pg8000 dialect has been updated for version - 1.16.5 and higher, and is again part of SQLAlchemy's continuous integration + 1.16.6 and higher, and is again part of SQLAlchemy's continuous integration with full feature support. .. _pg8000_unicode: @@ -119,10 +119,7 @@ class _PGNumericNoBind(_PGNumeric): class _PGJSON(JSON): def result_processor(self, dialect, coltype): - if dialect._dbapi_version > (1, 10, 1): - return None # Has native JSON - else: - return super(_PGJSON, self).result_processor(dialect, coltype) + return None def get_dbapi_type(self, dbapi): return dbapi.JSON @@ -130,10 +127,7 @@ class _PGJSON(JSON): class _PGJSONB(JSONB): def result_processor(self, dialect, coltype): - if dialect._dbapi_version > (1, 10, 1): - return None # Has native JSON - else: - return super(_PGJSON, self).result_processor(dialect, coltype) + return None def get_dbapi_type(self, dbapi): return dbapi.JSONB @@ -240,8 +234,7 @@ class PGExecutionContext_pg8000(PGExecutionContext): if not self.compiled: return - if self.dialect._dbapi_version > (1, 16, 0): - self.set_input_sizes() + self.set_input_sizes() class PGCompiler_pg8000(PGCompiler): @@ -271,7 +264,11 @@ class PGDialect_pg8000(PGDialect): execution_ctx_cls = PGExecutionContext_pg8000 statement_compiler = PGCompiler_pg8000 preparer = PGIdentifierPreparer_pg8000 - description_encoding = "use_encoding" + + # reversed as of pg8000 1.16.6. 1.16.5 and lower + # are no longer compatible + description_encoding = None + # description_encoding = "use_encoding" colspecs = util.update_copy( PGDialect.colspecs, @@ -302,9 +299,8 @@ class PGDialect_pg8000(PGDialect): PGDialect.__init__(self, **kwargs) self.client_encoding = client_encoding - def initialize(self, connection): - self.supports_sane_multi_rowcount = self._dbapi_version >= (1, 9, 14) - super(PGDialect_pg8000, self).initialize(connection) + if self._dbapi_version < (1, 16, 6): + raise NotImplementedError("pg8000 1.16.6 or greater is required") @util.memoized_property def _dbapi_version(self): @@ -452,7 +448,7 @@ class PGDialect_pg8000(PGDialect): fns.append(on_connect) - if self._dbapi_version > (1, 16, 0) and self._json_deserializer: + if self._json_deserializer: def on_connect(conn): # json |