--- /dev/null
+.. change::
+ :tags: bug, postgresql, reflection
+ :tickets: 12600
+
+ Fixed regression caused by :ticket:`10665` where the newly modified
+ constraint reflection query would fail on older versions of PostgreSQL
+ such as version 9.6. Pull request courtesy Denis Laxalde.
if self.server_version_info >= (11, 0):
indnkeyatts = pg_catalog.pg_index.c.indnkeyatts
else:
- indnkeyatts = sql.null().label("indnkeyatts")
+ indnkeyatts = pg_catalog.pg_index.c.indnatts.label("indnkeyatts")
if self.server_version_info >= (15,):
indnullsnotdistinct = pg_catalog.pg_index.c.indnullsnotdistinct
# See note in get_multi_indexes
all_cols = row["cols"]
indnkeyatts = row["indnkeyatts"]
- if (
- indnkeyatts is not None
- and len(all_cols) > indnkeyatts
- ):
+ if len(all_cols) > indnkeyatts:
inc_cols = all_cols[indnkeyatts:]
cst_cols = all_cols[:indnkeyatts]
else:
if self.server_version_info >= (11, 0):
indnkeyatts = pg_catalog.pg_index.c.indnkeyatts
else:
- indnkeyatts = sql.null().label("indnkeyatts")
+ indnkeyatts = pg_catalog.pg_index.c.indnatts.label("indnkeyatts")
if self.server_version_info >= (15,):
nulls_not_distinct = pg_catalog.pg_index.c.indnullsnotdistinct
# "The number of key columns in the index, not counting any
# included columns, which are merely stored and do not
# participate in the index semantics"
- if (
- indnkeyatts is not None
- and len(all_elements) > indnkeyatts
- ):
+ if len(all_elements) > indnkeyatts:
# this is a "covering index" which has INCLUDE columns
# as well as regular index columns
inc_cols = all_elements[indnkeyatts:]