Skip to content

Commit 43e48d2

Browse files
macroguo-ghyYoungwb
authored andcommitted
[Feature] Support trino current_catalog and current_schema function (StarRocks#41319)
Signed-off-by: hongyu guo <[email protected]>
1 parent 0b1d34a commit 43e48d2

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

fe/fe-core/src/main/java/com/starrocks/connector/parser/trino/AstBuilder.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import com.starrocks.analysis.FunctionParams;
4040
import com.starrocks.analysis.GroupByClause;
4141
import com.starrocks.analysis.GroupingFunctionCallExpr;
42+
import com.starrocks.analysis.InformationFunction;
4243
import com.starrocks.analysis.IntLiteral;
4344
import com.starrocks.analysis.JoinOperator;
4445
import com.starrocks.analysis.LargeIntLiteral;
@@ -98,6 +99,8 @@
9899
import io.trino.sql.tree.CoalesceExpression;
99100
import io.trino.sql.tree.ComparisonExpression;
100101
import io.trino.sql.tree.Cube;
102+
import io.trino.sql.tree.CurrentCatalog;
103+
import io.trino.sql.tree.CurrentSchema;
101104
import io.trino.sql.tree.CurrentTime;
102105
import io.trino.sql.tree.DataType;
103106
import io.trino.sql.tree.DateTimeDataType;
@@ -1083,6 +1086,16 @@ protected ParseNode visitCurrentTime(CurrentTime node, ParseTreeContext context)
10831086
return new FunctionCallExpr(node.getFunction().getName(), new ArrayList<>());
10841087
}
10851088

1089+
@Override
1090+
protected ParseNode visitCurrentCatalog(CurrentCatalog node, ParseTreeContext context) {
1091+
return new InformationFunction("CATALOG");
1092+
}
1093+
1094+
@Override
1095+
protected ParseNode visitCurrentSchema(CurrentSchema node, ParseTreeContext context) {
1096+
return new InformationFunction("SCHEMA");
1097+
}
1098+
10861099
@Override
10871100
protected ParseNode visitSearchedCaseExpression(SearchedCaseExpression node, ParseTreeContext context) {
10881101
return new CaseExpr(null, visit(node.getWhenClauses(), context, CaseWhenClause.class),

fe/fe-core/src/test/java/com/starrocks/connector/parser/trino/TrinoFunctionTransformTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,4 +377,13 @@ public void testIsNullFunction() throws Exception {
377377
sql = "select isnotnull(1, 2)";
378378
analyzeFail(sql, "isnotnull function must have 1 argument");
379379
}
380+
381+
@Test
382+
public void testUtilityFunction() throws Exception {
383+
String sql = "select current_catalog";
384+
assertPlanContains(sql, "<slot 2> : CATALOG()");
385+
386+
sql = "select current_schema";
387+
assertPlanContains(sql, "<slot 2> : 'test'");
388+
}
380389
}

0 commit comments

Comments
 (0)