Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions sdks/java/extensions/sql/src/main/codegen/config.fmpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ data: {
"org.apache.beam.sdk.extensions.sql.impl.parser.SqlSetOptionBeam"
"org.apache.beam.sdk.extensions.sql.impl.parser.SqlAlterCatalog"
"org.apache.beam.sdk.extensions.sql.impl.parser.SqlAlterTable"
"org.apache.beam.sdk.extensions.sql.impl.parser.SqlCallProcedure"
"org.apache.beam.sdk.extensions.sql.impl.utils.CalciteUtils"
"org.apache.beam.sdk.schemas.Schema"
]
Expand Down Expand Up @@ -414,6 +415,7 @@ data: {
# List of non-reserved keywords to add;
# items in this list become non-reserved
nonReservedKeywordsToAdd: [
"SYSTEM"
]

# List of non-reserved keywords to remove;
Expand All @@ -439,6 +441,7 @@ data: {
"SqlSetOptionBeam(Span.of(), null)"
"SqlAlterCatalog(Span.of(), null)"
"SqlAlterTable(Span.of(), null)"
"SqlCallProcedure(Span.of())"
]

# List of methods for parsing custom literals.
Expand Down
32 changes: 32 additions & 0 deletions sdks/java/extensions/sql/src/main/codegen/includes/parserImpls.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -855,6 +855,38 @@ Schema.FieldType SimpleType() :
}
}

/**
* CALL ( catalog_name '.' )? ( 'system' '.' )? procedure_name
* '(' ( arg ( ',' arg )* )? ')'
*
* where arg := literal | param_name '=>' literal
*/
SqlCall SqlCallProcedure(Span s) :
{
final SqlIdentifier procedureName;
final List<SqlNode> args = new ArrayList<SqlNode>();
}
{
<CALL> {
s.add(this);
}
procedureName = CompoundIdentifier()
<LPAREN>
[
AddArg0(args, ExprContext.ACCEPT_NONCURSOR)
(
<COMMA> {
checkNonQueryExpression(ExprContext.ACCEPT_NONCURSOR);
}
AddArg(args, ExprContext.ACCEPT_NONCURSOR)
)*
]
<RPAREN>
{
return new SqlCallProcedure(s.end(this), procedureName, args);
}
}

SqlSetOptionBeam SqlSetOptionBeam(Span s, String scope) :
{
SqlIdentifier name;
Expand Down
Loading
Loading