@@ -106,7 +106,7 @@ def define_tables(cls, metadata):
106106 Column ("a" , String , primary_key = True ),
107107 Column ("b" , String , primary_key = True ),
108108 )
109- Table (
109+ composite_fk = Table (
110110 "composite_fk" ,
111111 metadata ,
112112 Column ("my_a" , String , primary_key = True ),
@@ -118,6 +118,12 @@ def define_tables(cls, metadata):
118118 name = "composite_fk_composite_pk_a_b" ,
119119 ),
120120 )
121+ Index (
122+ "idx_composte_fk_all" ,
123+ composite_fk .c .my_a ,
124+ composite_fk .c .my_b ,
125+ composite_fk .c .my_c ,
126+ )
121127
122128 def test_hello_world (self , connection ):
123129 greeting = connection .execute (text ("select 'Hello World'" ))
@@ -356,6 +362,28 @@ def test_composite_fk_lookups(self, connection):
356362 insp .get_multi_foreign_keys (filter_names = ["composite_fk" ]),
357363 )
358364
365+ def test_composite_index_lookups (self , connection ):
366+ """Ensures we introspect composite indexes."""
367+
368+ engine = connection .engine
369+
370+ insp = inspect (engine )
371+ eq_ (
372+ {
373+ (None , "composite_fk" ): [
374+ {
375+ "name" : "idx_composte_fk_all" ,
376+ "column_names" : ["my_a" , "my_b" , "my_c" ],
377+ "unique" : False ,
378+ "column_sorting" : {"my_a" : "asc" , "my_b" : "asc" , "my_c" : "asc" },
379+ "include_columns" : [],
380+ "dialect_options" : {},
381+ }
382+ ]
383+ },
384+ insp .get_multi_indexes (filter_names = ["composite_fk" ]),
385+ )
386+
359387 def test_commit_timestamp (self , connection ):
360388 """Ensures commit timestamps are set."""
361389
0 commit comments