Skip to content

Commit

Permalink
[Feature] Support trino current_catalog and current_schema function (#…
Browse files Browse the repository at this point in the history
…41319)

Signed-off-by: hongyu guo <[email protected]>
(cherry picked from commit 4244719)
  • Loading branch information
macroguo-ghy authored and mergify[bot] committed Feb 23, 2024
1 parent 40c9893 commit c80306a
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@
import io.trino.sql.tree.CoalesceExpression;
import io.trino.sql.tree.ComparisonExpression;
import io.trino.sql.tree.Cube;
import io.trino.sql.tree.CurrentCatalog;
import io.trino.sql.tree.CurrentSchema;
import io.trino.sql.tree.CurrentTime;
import io.trino.sql.tree.CurrentUser;
import io.trino.sql.tree.DataType;
Expand Down Expand Up @@ -1099,6 +1101,16 @@ protected ParseNode visitCurrentTime(CurrentTime node, ParseTreeContext context)
return new FunctionCallExpr(node.getFunction().getName(), new ArrayList<>());
}

@Override
protected ParseNode visitCurrentCatalog(CurrentCatalog node, ParseTreeContext context) {
return new InformationFunction(FunctionSet.CATALOG.toUpperCase());
}

@Override
protected ParseNode visitCurrentSchema(CurrentSchema node, ParseTreeContext context) {
return new InformationFunction(FunctionSet.SCHEMA.toUpperCase());
}

@Override
protected ParseNode visitSearchedCaseExpression(SearchedCaseExpression node, ParseTreeContext context) {
return new CaseExpr(null, visit(node.getWhenClauses(), context, CaseWhenClause.class),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -404,4 +404,13 @@ public void testIsNullFunction() throws Exception {
sql = "select isnotnull(1, 2)";
analyzeFail(sql, "isnotnull function must have 1 argument");
}

@Test
public void testUtilityFunction() throws Exception {
String sql = "select current_catalog";
assertPlanContains(sql, "<slot 2> : CATALOG()");

sql = "select current_schema";
assertPlanContains(sql, "<slot 2> : 'test'");
}
}

0 comments on commit c80306a

Please sign in to comment.