List<RexNode> toRexList( FunctionExpression expression, RelNode... inputs) { List<RexNode> list = new ArrayList<>(); RexBuilder rexBuilder = cluster.getRexBuilder(); for (RelNode input : inputs) { list.add(rexBuilder.makeRangeReference(input)); } return CalcitePrepareImpl.EmptyScalarTranslator.empty(rexBuilder) .bind(expression.parameterList, list) .toRexList(expression.body); }
List<RexNode> toRexList( FunctionExpression expression, RelNode... inputs) { List<RexNode> list = new ArrayList<>(); RexBuilder rexBuilder = cluster.getRexBuilder(); for (RelNode input : inputs) { list.add(rexBuilder.makeRangeReference(input)); } return CalcitePrepareImpl.EmptyScalarTranslator.empty(rexBuilder) .bind(expression.parameterList, list) .toRexList(expression.body); }
RexNode toRex( FunctionExpression expression, RelNode... inputs) { List<RexNode> list = new ArrayList<>(); RexBuilder rexBuilder = cluster.getRexBuilder(); for (RelNode input : inputs) { list.add(rexBuilder.makeRangeReference(input)); } return CalcitePrepareImpl.EmptyScalarTranslator.empty(rexBuilder) .bind(expression.parameterList, list) .toRex(expression.body); } }
private List<RexNode> toRex( RelNode child, FunctionExpression expression) { RexBuilder rexBuilder = cluster.getRexBuilder(); List<RexNode> list = Collections.singletonList( rexBuilder.makeRangeReference(child)); CalcitePrepareImpl.ScalarTranslator translator = CalcitePrepareImpl.EmptyScalarTranslator .empty(rexBuilder) .bind(expression.parameterList, list); final List<RexNode> rexList = new ArrayList<>(); final Expression simple = Blocks.simple(expression.body); for (Expression expression1 : fieldExpressions(simple)) { rexList.add(translator.toRex(expression1)); } return rexList; }
private List<RexNode> toRex( RelNode child, FunctionExpression expression) { RexBuilder rexBuilder = cluster.getRexBuilder(); List<RexNode> list = Collections.singletonList( rexBuilder.makeRangeReference(child)); CalcitePrepareImpl.ScalarTranslator translator = CalcitePrepareImpl.EmptyScalarTranslator .empty(rexBuilder) .bind(expression.parameterList, list); final List<RexNode> rexList = new ArrayList<>(); final Expression simple = Blocks.simple(expression.body); for (Expression expression1 : fieldExpressions(simple)) { rexList.add(translator.toRex(expression1)); } return rexList; }
RexNode toRex( FunctionExpression expression, RelNode... inputs) { List<RexNode> list = new ArrayList<>(); RexBuilder rexBuilder = cluster.getRexBuilder(); for (RelNode input : inputs) { list.add(rexBuilder.makeRangeReference(input)); } return CalcitePrepareImpl.EmptyScalarTranslator.empty(rexBuilder) .bind(expression.parameterList, list) .toRex(expression.body); } }