From: Mike Bayer Date: Mon, 20 Jun 2022 15:06:34 +0000 (-0400) Subject: remove warnings for index/unique skipped due to exclude_cols X-Git-Tag: rel_2_0_0b1~226 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4e2a89c41b0bb423891767d10bdc3cb1b75eaa5e;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git 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 --- diff --git a/doc/build/changelog/unreleased_20/8102.rst b/doc/build/changelog/unreleased_20/8102.rst new file mode 100644 index 0000000000..1ae180f6c3 --- /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 32c89106b7..655a9f5c11 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 2f6c06aceb..cf8f754f5d 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