private static List<Expression> simpleList(BlockStatement statement) { Expression simple = Blocks.simple(statement); if (simple instanceof NewExpression) { NewExpression newExpression = (NewExpression) simple; return newExpression.arguments; } else { return Collections.singletonList(simple); } }
private static List<Expression> simpleList(BlockStatement statement) { Expression simple = Blocks.simple(statement); if (simple instanceof NewExpression) { NewExpression newExpression = (NewExpression) simple; return newExpression.arguments; } else { return Collections.singletonList(simple); } }
private static List<Expression> simpleList(BlockStatement statement) { Expression simple = Blocks.simple(statement); if (simple instanceof NewExpression) { NewExpression newExpression = (NewExpression) simple; return newExpression.arguments; } else { return Collections.singletonList(simple); } }
public RexNode toRex(BlockStatement statement) { return toRex(Blocks.simple(statement)); }
public RexNode toRex(BlockStatement statement) { return toRex(Blocks.simple(statement)); }
public RexNode toRex(BlockStatement statement) { return toRex(Blocks.simple(statement)); }
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; }