diff --git a/fe/fe-core/src/main/cup/sql_parser.cup b/fe/fe-core/src/main/cup/sql_parser.cup index 4e4e028e41fcad..cd4ea3cdb9d50c 100644 --- a/fe/fe-core/src/main/cup/sql_parser.cup +++ b/fe/fe-core/src/main/cup/sql_parser.cup @@ -3933,6 +3933,8 @@ non_pred_expr ::= {: RESULT = new FunctionCallExpr(new FunctionName(null, id), params); :} | KW_DATABASE LPAREN RPAREN {: RESULT = new InformationFunction("DATABASE"); :} + | KW_SCHEMA LPAREN RPAREN + {: RESULT = new InformationFunction("SCHEMA"); :} | KW_USER LPAREN RPAREN {: RESULT = new InformationFunction("USER"); :} | KW_CURRENT_USER LPAREN RPAREN diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/InformationFunction.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/InformationFunction.java index 5d27188bba2564..0550abe6e0343d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/InformationFunction.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/InformationFunction.java @@ -48,7 +48,7 @@ public Expr clone() { @Override protected void analyzeImpl(Analyzer analyzer) throws AnalysisException { - if (funcType.equalsIgnoreCase("DATABASE")) { + if (funcType.equalsIgnoreCase("DATABASE") || funcType.equalsIgnoreCase("SCHEMA")) { type = Type.VARCHAR; strValue = analyzer.getDefaultDb(); } else if (funcType.equalsIgnoreCase("USER")) {