diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2022-06-20 11:06:34 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2022-06-20 11:07:47 -0400 |
| commit | 4e2a89c41b0bb423891767d10bdc3cb1b75eaa5e (patch) | |
| tree | 1252ae8b11e230a304fa8bed7fcf6ddf3b012ed3 | |
| parent | 5785b59482498996835dc148fa5f77db36a0705a (diff) | |
| download | sqlalchemy-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.rst | 14 | ||||
| -rw-r--r-- | lib/sqlalchemy/engine/reflection.py | 8 | ||||
| -rw-r--r-- | test/engine/test_reflection.py | 2 |
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 |
