summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2022-06-20 11:06:34 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2022-06-20 11:07:47 -0400
commit4e2a89c41b0bb423891767d10bdc3cb1b75eaa5e (patch)
tree1252ae8b11e230a304fa8bed7fcf6ddf3b012ed3
parent5785b59482498996835dc148fa5f77db36a0705a (diff)
downloadsqlalchemy-4e2a89c41b0bb423891767d10bdc3cb1b75eaa5e.tar.gz
remove warnings for index/unique skipped due to exclude_cols
The warnings that are emitted regarding reflection of indexes or unique constraints, when the :paramref:`.Table.include_columns` parameter is used to exclude columns that are then found to be part of those constraints, have been removed. When the :paramref:`.Table.include_columns` parameter is used it should be expected that the resulting :class:`.Table` construct will not include constraints that rely upon omitted columns. This change was made in response to :ticket:`8100` which repaired :paramref:`.Table.include_columns` in conjunction with foreign key constraints that rely upon omitted columns, where the use case became clear that omitting such constraints should be expected. Fixes: #8102 Change-Id: Id32f628def2d12499cd49d0b436ed345fe49dc6b
-rw-r--r--doc/build/changelog/unreleased_20/8102.rst14
-rw-r--r--lib/sqlalchemy/engine/reflection.py8
-rw-r--r--test/engine/test_reflection.py2
3 files changed, 14 insertions, 10 deletions
diff --git a/doc/build/changelog/unreleased_20/8102.rst b/doc/build/changelog/unreleased_20/8102.rst
new file mode 100644
index 000000000..1ae180f6c
--- /dev/null
+++ b/doc/build/changelog/unreleased_20/8102.rst
@@ -0,0 +1,14 @@
+.. change::
+ :tags: bug, schema
+ :tickets: 8102
+
+ The warnings that are emitted regarding reflection of indexes or unique
+ constraints, when the :paramref:`.Table.include_columns` parameter is used
+ to exclude columns that are then found to be part of those constraints,
+ have been removed. When the :paramref:`.Table.include_columns` parameter is
+ used it should be expected that the resulting :class:`.Table` construct
+ will not include constraints that rely upon omitted columns. This change
+ was made in response to :ticket:`8100` which repaired
+ :paramref:`.Table.include_columns` in conjunction with foreign key
+ constraints that rely upon omitted columns, where the use case became
+ clear that omitting such constraints should be expected.
diff --git a/lib/sqlalchemy/engine/reflection.py b/lib/sqlalchemy/engine/reflection.py
index 32c89106b..655a9f5c1 100644
--- a/lib/sqlalchemy/engine/reflection.py
+++ b/lib/sqlalchemy/engine/reflection.py
@@ -1900,10 +1900,6 @@ class Inspector(inspection.Inspectable["Inspector"]):
duplicates = index_d.get("duplicates_constraint")
if include_columns and not set(columns).issubset(include_columns):
- util.warn(
- "Omitting %s key for (%s), key covers omitted columns."
- % (flavor, ", ".join(columns))
- )
continue
if duplicates:
continue
@@ -1954,10 +1950,6 @@ class Inspector(inspection.Inspectable["Inspector"]):
columns = const_d["column_names"]
duplicates = const_d.get("duplicates_index")
if include_columns and not set(columns).issubset(include_columns):
- util.warn(
- "Omitting unique constraint key for (%s), "
- "key covers omitted columns." % ", ".join(columns)
- )
continue
if duplicates:
continue
diff --git a/test/engine/test_reflection.py b/test/engine/test_reflection.py
index 2f6c06ace..cf8f754f5 100644
--- a/test/engine/test_reflection.py
+++ b/test/engine/test_reflection.py
@@ -375,7 +375,6 @@ class ReflectionTest(fixtures.TestBase, ComparesTables):
1,
)
- @testing.emits_warning(r".*omitted columns")
def test_include_columns_indexes(self, connection, metadata):
m = metadata
@@ -2302,7 +2301,6 @@ class IncludeColsFksTest(AssertsCompiledSQL, fixtures.TestBase):
for c in ("a", "c", "d"):
assert c not in foo.c
- @testing.emits_warning
@testing.combinations(True, False, argnames="resolve_fks")
def test_include_cols_skip_fk_col(
self, connection, tab_w_fks, resolve_fks