],
)
+ def test_index_column_order(self, metadata, inspect_for_table):
+ """test for #12894"""
+ with inspect_for_table("sa_multi_index") as (schema, inspector):
+ test_table = Table(
+ "sa_multi_index",
+ metadata,
+ Column("Column1", Integer, primary_key=True),
+ Column("Column2", Integer),
+ Column("Column3", Integer),
+ )
+ Index(
+ "Index_Example",
+ test_table.c.Column3,
+ test_table.c.Column1,
+ test_table.c.Column2,
+ )
+ indexes = inspector.get_indexes("sa_multi_index")
+ eq_(indexes[0]["column_names"], ["Column3", "Column1", "Column2"])
+
@testing.requires.indexes_with_expressions
def test_reflect_expression_based_indexes(self, metadata, connection):
t = Table(
CreateIndex(idx), "CREATE NONCLUSTERED INDEX idx_x ON t (x)"
)
+ def test_index_column_order_clustered(self, metadata, connection):
+ """test for #12894"""
+ test_table = Table(
+ "t",
+ metadata,
+ Column("id", Integer, primary_key=True),
+ Column("x", Integer),
+ Column("y", Integer),
+ PrimaryKeyConstraint('id', mssql_clustered=False),
+ )
+ Index(
+ "idx_x",
+ test_table.c.y,
+ test_table.c.id,
+ test_table.c.x,
+ mssql_clustered=True,
+ )
+ metadata.create_all(connection)
+ indexes = testing.db.dialect.get_indexes(connection, "t", None)
+ eq_(indexes[0]["column_names"], ["y", "id", "x"])
+
+ def test_index_column_order_nonclustered(self, metadata, connection):
+ """test for #12894"""
+ test_table = Table(
+ "t",
+ metadata,
+ Column("id", Integer, primary_key=True),
+ Column("x", Integer),
+ Column("y", Integer),
+ )
+ Index(
+ "idx_x",
+ test_table.c.y,
+ test_table.c.id,
+ test_table.c.x,
+ )
+ metadata.create_all(connection)
+ indexes = testing.db.dialect.get_indexes(connection, "t", None)
+ eq_(indexes[0]["column_names"], ["y", "id", "x"])
+
@testing.only_if("mssql>=12")
def test_index_reflection_colstore_clustered(self, metadata, connection):
t1 = Table(