diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-05-01 20:30:18 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-05-01 20:58:42 -0400 |
| commit | 45a334e38c1baab34d3195c899cb9ca617fb52a7 (patch) | |
| tree | d5ba7127d5c06c777eb30836fcf4f343c65e71ba /test/sql | |
| parent | ea87d39d7a9926dc1c6bf3d70e8faf8575769cb0 (diff) | |
| download | sqlalchemy-45a334e38c1baab34d3195c899cb9ca617fb52a7.tar.gz | |
Handle non-string, non column expression in index for deferred attach
Fixed issue where an :class:`.Index` that is deferred in being associated
with a table, such as as when it contains a :class:`.Column` that is not
associated with any :class:`.Table` yet, would fail to attach correctly if
it also contained a non table-oriented expession.
Fixes: #5298
Change-Id: I0111c400f6bd4a9f31bf00a9957816c7a3fac783
Diffstat (limited to 'test/sql')
| -rw-r--r-- | test/sql/test_metadata.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/sql/test_metadata.py b/test/sql/test_metadata.py index c57932bed..36f308073 100644 --- a/test/sql/test_metadata.py +++ b/test/sql/test_metadata.py @@ -9,6 +9,7 @@ from sqlalchemy import Boolean from sqlalchemy import CheckConstraint from sqlalchemy import Column from sqlalchemy import ColumnDefault +from sqlalchemy import desc from sqlalchemy import Enum from sqlalchemy import event from sqlalchemy import exc @@ -2635,6 +2636,23 @@ class ConstraintTest(fixtures.TestBase): idx, ) + def test_non_attached_col_plus_string_expr(self): + # another one that declarative can lead towards + metadata = MetaData() + + t1 = Table("a", metadata, Column("id", Integer)) + + c2 = Column("x", Integer) + + # if we do it here, no problem + # t1.append_column(c2) + + idx = Index("foo", c2, desc("foo")) + + t1.append_column(c2) + + self._assert_index_col_x(t1, idx, columns=True) + def test_column_associated_w_lowercase_table(self): from sqlalchemy import table |
