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
Signed-off-by: hongyu guo <[email protected]>
  • Loading branch information
macroguo-ghy committed Feb 21, 2024
1 parent 7bde65a commit 9a192a5
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 @@ -105,6 +105,8 @@
import io.trino.sql.tree.ComparisonExpression;
import io.trino.sql.tree.CreateTableAsSelect;
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 @@ -1105,6 +1107,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 @@ -425,4 +425,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 9a192a5

Please sign in to comment.