@Override protected EvalNode visitUnaryEval(Context context, UnaryEval unary, Stack<EvalNode> stack) { switch (unary.getType()) { case NOT: context.sb.append("NOT "); super.visitUnaryEval(context, unary, stack); break; case SIGNED: SignedEval signed = (SignedEval) unary; if (signed.isNegative()) { context.sb.append("-"); } super.visitUnaryEval(context, unary, stack); break; case IS_NULL: super.visitUnaryEval(context, unary, stack); IsNullEval isNull = (IsNullEval) unary; if (isNull.isNot()) { context.sb.append("IS NOT NULL "); } else { context.sb.append("IS NULL "); } break; case CAST: super.visitUnaryEval(context, unary, stack); context.sb.append(" AS ").append(convertTajoTypeToSQLType(unary.getValueType())); } return unary; }
@Override protected EvalNode visitUnaryEval(Context context, UnaryEval unary, Stack<EvalNode> stack) { switch (unary.getType()) { case NOT: context.sb.append("NOT "); super.visitUnaryEval(context, unary, stack); break; case SIGNED: SignedEval signed = (SignedEval) unary; if (signed.isNegative()) { context.sb.append("-"); } super.visitUnaryEval(context, unary, stack); break; case IS_NULL: super.visitUnaryEval(context, unary, stack); IsNullEval isNull = (IsNullEval) unary; if (isNull.isNot()) { context.sb.append("IS NOT NULL "); } else { context.sb.append("IS NULL "); } break; case CAST: super.visitUnaryEval(context, unary, stack); context.sb.append(" AS ").append(convertTajoTypeToSQLType(unary.getValueType())); } return unary; }
result = visitUnaryEval(context, (UnaryEval) evalNode, stack); } else if (evalNode instanceof BinaryEval) { result = visitBinaryEval(context, stack, (BinaryEval) evalNode);
result = visitUnaryEval(context, (UnaryEval) evalNode, stack); } else if (evalNode instanceof BinaryEval) { result = visitBinaryEval(context, stack, (BinaryEval) evalNode);
@Override public EvalNode visitUnaryEval(EvalTreeProtoBuilderContext context, UnaryEval unary, Stack<EvalNode> stack) { // visiting and registering childs super.visitUnaryEval(context, unary, stack); int [] childIds = registerGetChildIds(context, unary); // building itself PlanProto.UnaryEval.Builder unaryBuilder = PlanProto.UnaryEval.newBuilder(); unaryBuilder.setChildId(childIds[0]); if (unary.getType() == EvalType.IS_NULL) { IsNullEval isNullEval = (IsNullEval) unary; unaryBuilder.setNegative(isNullEval.isNot()); } else if (unary.getType() == EvalType.SIGNED) { SignedEval signedEval = (SignedEval) unary; unaryBuilder.setNegative(signedEval.isNegative()); } else if (unary.getType() == EvalType.CAST) { CastEval castEval = (CastEval) unary; unaryBuilder.setCastingType(castEval.getValueType()); } // registering itself and building EvalNode PlanProto.EvalNode.Builder builder = createEvalBuilder(context, unary); builder.setUnary(unaryBuilder); context.treeBuilder.addNodes(builder); return unary; }
@Override public EvalNode visitUnaryEval(EvalTreeProtoBuilderContext context, UnaryEval unary, Stack<EvalNode> stack) { // visiting and registering childs super.visitUnaryEval(context, unary, stack); int [] childIds = registerGetChildIds(context, unary); // building itself PlanProto.UnaryEval.Builder unaryBuilder = PlanProto.UnaryEval.newBuilder(); unaryBuilder.setChildId(childIds[0]); if (unary.getType() == EvalType.IS_NULL) { IsNullEval isNullEval = (IsNullEval) unary; unaryBuilder.setNegative(isNullEval.isNot()); } else if (unary.getType() == EvalType.SIGNED) { SignedEval signedEval = (SignedEval) unary; unaryBuilder.setNegative(signedEval.isNegative()); } else if (unary.getType() == EvalType.CAST) { CastEval castEval = (CastEval) unary; unaryBuilder.setCastingType(castEval.getValueType().getProto()); } // registering itself and building EvalNode PlanProto.EvalNode.Builder builder = createEvalBuilder(context, unary); builder.setUnary(unaryBuilder); context.treeBuilder.addNodes(builder); return unary; }