summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/postgresql/base.py
diff options
context:
space:
mode:
authorGord Thompson <gord@gordthompson.com>2021-12-20 14:37:13 -0700
committerMike Bayer <mike_mp@zzzcomputing.com>2021-12-27 14:32:39 -0500
commit5ada58954afa4fa427f4f7a91c683c1210d3d6df (patch)
tree983a285274d93bb94d3687fdb502d52470f9197d /lib/sqlalchemy/dialects/postgresql/base.py
parent2bb6cfc7c9b8f09eaa4efeffc337a1162993979c (diff)
downloadsqlalchemy-5ada58954afa4fa427f4f7a91c683c1210d3d6df.tar.gz
Reflect included columns as dialect_options
Fixed reflection of covering indexes to report ``include_columns`` as part of the ``dialect_options`` entry in the reflected index dictionary, thereby enabling round trips from reflection->create to be complete. Included columns continue to also be present under the ``include_columns`` key for backwards compatibility. Fixes: #7382 Change-Id: I4f16b65caed3a36d405481690a3a92432b5efd62
Diffstat (limited to 'lib/sqlalchemy/dialects/postgresql/base.py')
-rw-r--r--lib/sqlalchemy/dialects/postgresql/base.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py
index 614c84b56..869e48bd4 100644
--- a/lib/sqlalchemy/dialects/postgresql/base.py
+++ b/lib/sqlalchemy/dialects/postgresql/base.py
@@ -4242,6 +4242,8 @@ class PGDialect(default.DefaultDialect):
"column_names": [idx["cols"][i] for i in idx["key"]],
}
if self.server_version_info >= (11, 0):
+ # NOTE: this is legacy, this is part of dialect_options now
+ # as of #7382
entry["include_columns"] = [idx["cols"][i] for i in idx["inc"]]
if "duplicates_constraint" in idx:
entry["duplicates_constraint"] = idx["duplicates_constraint"]
@@ -4250,6 +4252,10 @@ class PGDialect(default.DefaultDialect):
(idx["cols"][idx["key"][i]], value)
for i, value in idx["sorting"].items()
)
+ if "include_columns" in entry:
+ entry.setdefault("dialect_options", {})[
+ "postgresql_include"
+ ] = entry["include_columns"]
if "options" in idx:
entry.setdefault("dialect_options", {})[
"postgresql_with"