@@ -933,6 +933,48 @@ public void GetColumnSchemaAfterNextResult()
933933 Assert . False ( reader . NextResult ( ) ) ;
934934 Assert . Empty ( reader . GetColumnSchema ( ) ) ;
935935 }
936+
937+ [ Fact ]
938+ public void GetColumnSchemaForTableAlias ( )
939+ {
940+ using var cmd = m_database . Connection . CreateCommand ( ) ;
941+ cmd . CommandText = """
942+ drop table if exists column_schema_table2;
943+ drop table if exists column_schema_table1;
944+ create table column_schema_table1(id int not null primary key);
945+ create table column_schema_table2(id int not null primary key,
946+ table1_id1 int not null,
947+ table1_id2 int not null,
948+ foreign key (table1_id1) references column_schema_table1(id),
949+ foreign key (table1_id2) references column_schema_table1(id));
950+ insert into column_schema_table1(id) values(1),(2);
951+ insert into column_schema_table2(id, table1_id1, table1_id2) values(3, 1, 2);
952+ """ ;
953+ cmd . ExecuteNonQuery ( ) ;
954+
955+ cmd . CommandText = """
956+ select t2.id as id2, t1a.id as ida, t1b.id as idb
957+ from column_schema_table2 t2
958+ join column_schema_table1 t1a on t2.table1_id1 = t1a.id
959+ join column_schema_table1 t1b on t2.table1_id2 = t1b.id;
960+ """ ;
961+ using var reader = cmd . ExecuteReader ( ) ;
962+ Assert . True ( reader . Read ( ) ) ;
963+ var schema = reader . GetColumnSchema ( ) ;
964+ Assert . Equal ( 3 , schema . Count ) ;
965+ Assert . Equal ( "id2" , schema [ 0 ] . ColumnName ) ;
966+ Assert . Equal ( "ida" , schema [ 1 ] . ColumnName ) ;
967+ Assert . Equal ( "idb" , schema [ 2 ] . ColumnName ) ;
968+ Assert . Equal ( "id" , schema [ 0 ] . BaseColumnName ) ;
969+ Assert . Equal ( "id" , schema [ 1 ] . BaseColumnName ) ;
970+ Assert . Equal ( "id" , schema [ 2 ] . BaseColumnName ) ;
971+ Assert . Equal ( "column_schema_table2" , schema [ 0 ] . BaseTableName ) ;
972+ Assert . Equal ( "column_schema_table1" , schema [ 1 ] . BaseTableName ) ;
973+ Assert . Equal ( "column_schema_table1" , schema [ 2 ] . BaseTableName ) ;
974+ Assert . Equal ( "t2" , ( ( MySqlDbColumn ) schema [ 0 ] ) . TableName ) ;
975+ Assert . Equal ( "t1a" , ( ( MySqlDbColumn ) schema [ 1 ] ) . TableName ) ;
976+ Assert . Equal ( "t1b" , ( ( MySqlDbColumn ) schema [ 2 ] ) . TableName ) ;
977+ }
936978#endif
937979
938980 private void UseReaderWithoutDisposingThread ( object obj )
0 commit comments