@Override public EvalNode visitBinaryEval(EvalTreeProtoBuilderContext context, Stack<EvalNode> stack, BinaryEval binary) { // visiting and registering childs super.visitBinaryEval(context, stack, binary); int [] childIds = registerGetChildIds(context, binary); // registering itself and building EvalNode PlanProto.EvalNode.Builder builder = createEvalBuilder(context, binary); // building itself PlanProto.BinaryEval.Builder binaryBuilder = PlanProto.BinaryEval.newBuilder(); binaryBuilder.setLhsId(childIds[0]); binaryBuilder.setRhsId(childIds[1]); if (binary instanceof InEval) { binaryBuilder.setNegative(((InEval)binary).isNot()); } else if (binary instanceof PatternMatchPredicateEval) { PatternMatchPredicateEval patternMatch = (PatternMatchPredicateEval) binary; binaryBuilder.setNegative(patternMatch.isNot()); builder.setPatternMatch( PlanProto.PatternMatchEvalSpec.newBuilder().setCaseSensitive(patternMatch.isCaseInsensitive())); } builder.setBinary(binaryBuilder); context.treeBuilder.addNodes(builder); return binary; }
@Override public EvalNode visitBinaryEval(EvalTreeProtoBuilderContext context, Stack<EvalNode> stack, BinaryEval binary) { // visiting and registering childs super.visitBinaryEval(context, stack, binary); int [] childIds = registerGetChildIds(context, binary); // registering itself and building EvalNode PlanProto.EvalNode.Builder builder = createEvalBuilder(context, binary); // building itself PlanProto.BinaryEval.Builder binaryBuilder = PlanProto.BinaryEval.newBuilder(); binaryBuilder.setLhsId(childIds[0]); binaryBuilder.setRhsId(childIds[1]); if (binary instanceof InEval) { binaryBuilder.setNegative(((InEval)binary).isNot()); } else if (binary instanceof PatternMatchPredicateEval) { PatternMatchPredicateEval patternMatch = (PatternMatchPredicateEval) binary; binaryBuilder.setNegative(patternMatch.isNot()); builder.setPatternMatch( PlanProto.PatternMatchEvalSpec.newBuilder().setCaseSensitive(patternMatch.isCaseInsensitive())); } builder.setBinary(binaryBuilder); context.treeBuilder.addNodes(builder); return binary; }
consAdapter.push(patternPredicate.isNot()); emitCreateEval(consAdapter, initMethod, patternPredicate.getLeftExpr()); emitConstEval(consAdapter, initMethod, (ConstEval) patternPredicate.getRightExpr());
consAdapter.push(patternPredicate.isNot()); emitCreateEval(consAdapter, initMethod, patternPredicate.getLeftExpr()); emitConstEval(consAdapter, initMethod, (ConstEval) patternPredicate.getRightExpr());