@Override public EvalNode visitBetween(EvalTreeProtoBuilderContext context, BetweenPredicateEval between, Stack<EvalNode> stack) { // visiting and registering childs super.visitBetween(context, between, stack); int [] childIds = registerGetChildIds(context, between); Preconditions.checkState(childIds.length == 3, "Between must have three childs, but there are " + childIds.length + " child nodes"); // building itself PlanProto.BetweenEval.Builder betweenBuilder = PlanProto.BetweenEval.newBuilder(); betweenBuilder.setNegative(between.isNot()); betweenBuilder.setSymmetric(between.isSymmetric()); betweenBuilder.setPredicand(childIds[0]); betweenBuilder.setBegin(childIds[1]); betweenBuilder.setEnd(childIds[2]); // registering itself and building EvalNode PlanProto.EvalNode.Builder builder = createEvalBuilder(context, between); builder.setBetween(betweenBuilder); context.treeBuilder.addNodes(builder); return between; }
@Override public EvalNode visitBetween(EvalTreeProtoBuilderContext context, BetweenPredicateEval between, Stack<EvalNode> stack) { // visiting and registering childs super.visitBetween(context, between, stack); int [] childIds = registerGetChildIds(context, between); Preconditions.checkState(childIds.length == 3, "Between must have three childs, but there are " + childIds.length + " child nodes"); // building itself PlanProto.BetweenEval.Builder betweenBuilder = PlanProto.BetweenEval.newBuilder(); betweenBuilder.setNegative(between.isNot()); betweenBuilder.setSymmetric(between.isSymmetric()); betweenBuilder.setPredicand(childIds[0]); betweenBuilder.setBegin(childIds[1]); betweenBuilder.setEnd(childIds[2]); // registering itself and building EvalNode PlanProto.EvalNode.Builder builder = createEvalBuilder(context, between); builder.setBetween(betweenBuilder); context.treeBuilder.addNodes(builder); return between; }
result = visitBetween(context, (BetweenPredicateEval) evalNode, stack); break; case CASE:
result = visitBetween(context, (BetweenPredicateEval) evalNode, stack); break; case CASE: