branch-2.1: [fix](Nereids) bind schema table qualified column failed #46960 (#47156)

Cherry-picked from #46960

Co-authored-by: morrySnow <zhangwenxin@selectdb.com>
This commit is contained in:
github-actions[bot]
2025-01-17 17:30:10 +08:00
committed by GitHub
parent 4139764bef
commit 490e04a88a
2 changed files with 4 additions and 2 deletions

View File

@ -416,7 +416,9 @@ public class BindRelation extends OneAnalysisRuleFactory {
qualifierWithoutTableName, unboundRelation.getTableSample(),
unboundRelation.getTableSnapshot());
case SCHEMA:
return new LogicalSchemaScan(unboundRelation.getRelationId(), table, qualifierWithoutTableName);
// schema table's name is case-insensitive, we need save its name in SQL text to get correct case.
return new LogicalSubQueryAlias<>(qualifiedTableName,
new LogicalSchemaScan(unboundRelation.getRelationId(), table, qualifierWithoutTableName));
case JDBC_EXTERNAL_TABLE:
case JDBC:
return new LogicalJdbcScan(unboundRelation.getRelationId(), table, qualifierWithoutTableName);

View File

@ -27,5 +27,5 @@ suite("information_schema") {
// INFORMATION_SCHEMA
sql "SELECT table_name FROM INFORMATION_SCHEMA.TABLES where table_schema=\"test%\" and TABLE_TYPE = \"BASE TABLE\" order by table_name"
sql "SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = \"test%\" AND column_name LIKE \"k%\""
sql "SELECT COLUMNS.COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = \"test%\" AND column_name LIKE \"k%\""
}