From: Mike Bayer Date: Thu, 7 Jan 2016 16:04:58 +0000 (-0500) Subject: - pg8000 fixes for json X-Git-Tag: rel_1_1_0b1~84^2~56 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ff803b1a2a326bad5c7de7810905dee4a1940c81;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - pg8000 fixes for json --- diff --git a/lib/sqlalchemy/dialects/postgresql/pg8000.py b/lib/sqlalchemy/dialects/postgresql/pg8000.py index c71f689a3d..2c745e6f76 100644 --- a/lib/sqlalchemy/dialects/postgresql/pg8000.py +++ b/lib/sqlalchemy/dialects/postgresql/pg8000.py @@ -155,6 +155,7 @@ class PGDialect_pg8000(PGDialect): sqltypes.Numeric: _PGNumericNoBind, sqltypes.Float: _PGNumeric, JSON: _PGJSON, + sqltypes.JSON: _PGJSON } ) diff --git a/lib/sqlalchemy/testing/requirements.py b/lib/sqlalchemy/testing/requirements.py index 87c776e8c6..1b5d6e883b 100644 --- a/lib/sqlalchemy/testing/requirements.py +++ b/lib/sqlalchemy/testing/requirements.py @@ -492,6 +492,13 @@ class SuiteRequirements(Requirements): return exclusions.closed() + @property + def json_array_indexes(self): + """"target platform supports numeric array indexes + within a JSON structure""" + + return self.json_type + @property def precision_numerics_general(self): """target backend has general support for moderately high-precision diff --git a/lib/sqlalchemy/testing/suite/test_types.py b/lib/sqlalchemy/testing/suite/test_types.py index f2103f89ab..6231e0fb9f 100644 --- a/lib/sqlalchemy/testing/suite/test_types.py +++ b/lib/sqlalchemy/testing/suite/test_types.py @@ -759,6 +759,7 @@ class JSONTest(_LiteralRoundTripFixture, fixtures.TablesTest): "r2" ) + @config.requirements.json_array_indexes def test_crit_simple_int(self): name = self.tables.data_table.c.name col = self.tables.data_table.c['data'] diff --git a/test/requirements.py b/test/requirements.py index 7031a70dc0..522a376e00 100644 --- a/test/requirements.py +++ b/test/requirements.py @@ -538,6 +538,10 @@ class DefaultRequirements(SuiteRequirements): "postgresql >= 9.3" ]) + @property + def json_array_indexes(self): + return self.json_type + fails_if("+pg8000") + @property def datetime_literals(self): """target dialect supports rendering of a date, time, or datetime as a