public class RexNodeToJavaCodeCompiler extends Object
Compiles a scalar expression (RexNode
) to Java source code String.
This code is inspired by JaninoRexCompiler in Calcite, but while it is returning Scalar
which is executable, we need to pass the source code to compile and serialize instance so that it can be executed on worker efficiently.
Constructor and Description |
---|
RexNodeToJavaCodeCompiler(org.apache.calcite.rex.RexBuilder rexBuilder) |
Modifier and Type | Method and Description |
---|---|
String |
compile(List<org.apache.calcite.rex.RexNode> nodes,
org.apache.calcite.rel.type.RelDataType inputRowType,
String className) |
String |
compile(org.apache.calcite.rex.RexProgram program,
String className) |
org.apache.calcite.linq4j.tree.BlockStatement |
compileToBlock(List<org.apache.calcite.rex.RexNode> nodes,
org.apache.calcite.rel.type.RelDataType inputRowType) |
org.apache.calcite.linq4j.tree.BlockStatement |
compileToBlock(org.apache.calcite.rex.RexProgram program) |
public RexNodeToJavaCodeCompiler(org.apache.calcite.rex.RexBuilder rexBuilder)
public org.apache.calcite.linq4j.tree.BlockStatement compileToBlock(List<org.apache.calcite.rex.RexNode> nodes, org.apache.calcite.rel.type.RelDataType inputRowType)
public org.apache.calcite.linq4j.tree.BlockStatement compileToBlock(org.apache.calcite.rex.RexProgram program)
public String compile(List<org.apache.calcite.rex.RexNode> nodes, org.apache.calcite.rel.type.RelDataType inputRowType, String className)
Copyright © 2022 The Apache Software Foundation. All Rights Reserved.