Package org.apache.storm.sql.compiler
Class RexNodeToJavaCodeCompiler
- java.lang.Object
-
- org.apache.storm.sql.compiler.RexNodeToJavaCodeCompiler
-
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
Scalarwhich is executable, we need to pass the source code to compile and serialize instance so that it can be executed on worker efficiently.
-
-
Constructor Summary
Constructors Constructor Description RexNodeToJavaCodeCompiler(org.apache.calcite.rex.RexBuilder rexBuilder)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Stringcompile(List<org.apache.calcite.rex.RexNode> nodes, org.apache.calcite.rel.type.RelDataType inputRowType, String className)Stringcompile(org.apache.calcite.rex.RexProgram program, String className)org.apache.calcite.linq4j.tree.BlockStatementcompileToBlock(List<org.apache.calcite.rex.RexNode> nodes, org.apache.calcite.rel.type.RelDataType inputRowType)org.apache.calcite.linq4j.tree.BlockStatementcompileToBlock(org.apache.calcite.rex.RexProgram program)
-
-
-
Method Detail
-
compileToBlock
public org.apache.calcite.linq4j.tree.BlockStatement compileToBlock(List<org.apache.calcite.rex.RexNode> nodes, org.apache.calcite.rel.type.RelDataType inputRowType)
-
compileToBlock
public org.apache.calcite.linq4j.tree.BlockStatement compileToBlock(org.apache.calcite.rex.RexProgram program)
-
compile
public String compile(List<org.apache.calcite.rex.RexNode> nodes, org.apache.calcite.rel.type.RelDataType inputRowType, String className)
-
-