diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindRelation.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindRelation.java index 63ed75684d..d412348973 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindRelation.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindRelation.java @@ -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); diff --git a/regression-test/suites/nereids_syntax_p0/information_schema.groovy b/regression-test/suites/nereids_syntax_p0/information_schema.groovy index 59ab91ab97..a86146b559 100644 --- a/regression-test/suites/nereids_syntax_p0/information_schema.groovy +++ b/regression-test/suites/nereids_syntax_p0/information_schema.groovy @@ -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%\"" }