private RESULT visitDefaultUnaryEval(CONTEXT context, UnaryEval unaryEval, Stack<EvalNode> stack) { stack.push(unaryEval); RESULT result = visit(context, unaryEval.getChild(), stack); stack.pop(); return result; }
public Object clone() throws CloneNotSupportedException { IsNullEval isNullEval = (IsNullEval) super.clone(); isNullEval.isNot = isNot; return isNullEval; } }
@Override public boolean equals(Object obj) { if (obj instanceof SignedEval) { SignedEval other = (SignedEval) obj; return super.equals(other) && negative == other.negative; } else { return false; } }
public EvalNode visitUnaryEval(EvalCodeGenContext context, UnaryEval unary, Stack<EvalNode> stack) { stack.push(unary); if (unary.getType() == EvalType.CAST) { visitCast(context, stack, (CastEval) unary); } else if (unary.getType() == EvalType.NOT) { visit(context, unary.getChild(), stack); context.methodvisitor.visitVarInsn(Opcodes.ISTORE, 9); context.methodvisitor.visitVarInsn(Opcodes.ISTORE, 10); context.pushDummyValue(unary.getValueType()); context.pushNullFlag(false); } else if (unary.getType() == EvalType.IS_NULL) { return visitIsNull(context, (IsNullEval) unary, stack); } else if (unary.getType() == EvalType.SIGNED) { visit(context, unary.getChild(), stack); case FLOAT4: context.methodvisitor.visitInsn(Opcodes.FNEG); break; case FLOAT8: context.methodvisitor.visitInsn(Opcodes.DNEG); break; default: throw new InvalidEvalException(unary.getType() + " operation to " + signed.getChild() + " is invalid.");
@Override protected EvalNode visitUnaryEval(Object context, UnaryEval unaryEval, Stack<EvalNode> stack) { stack.push(unaryEval); EvalNode child = unaryEval.getChild(); visit(context, child, stack); if (child.getType() == EvalType.AND || child.getType() == EvalType.OR) { unaryEval.setChild(rewrite((BinaryEval) child)); } stack.pop(); return unaryEval; }
@Override public EvalNode visitUnaryEval(LogicalPlanner.PlanContext context, UnaryEval unaryEval, Stack<EvalNode> stack) { stack.push(unaryEval); EvalNode child = visit(context, unaryEval.getChild(), stack); stack.pop(); unaryEval.setChild(child); if (child.getType() == EvalType.CONST) { // session's time zone String timezoneId = context.getQueryContext().get(SessionVars.TIMEZONE); EvalContext evalContext = new EvalContext(); evalContext.setTimeZone(TimeZone.getTimeZone(timezoneId)); unaryEval.bind(evalContext, null); return new ConstEval(unaryEval.eval(null)); } return unaryEval; }
@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 public EvalNode visitUnaryEval(Object context, UnaryEval unaryEval, Stack<EvalNode> stack) { stack.push(unaryEval); EvalNode child = visit(context, unaryEval.getChild(), stack); stack.pop(); if (child.getType() == EvalType.CONST) { return new ConstEval(unaryEval.bind(null, null).eval(null)); } return unaryEval; }
@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 @SuppressWarnings("unchecked") public Datum eval(Tuple tuple) { super.eval(tuple); Datum operandDatum = child.eval(tuple); if (operandDatum.isNull()) { return operandDatum; } return DatumFactory.cast(operandDatum, target, timezone); }
@Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + (isNot ? 1231 : 1237); return result; }
@Override public EvalNode bind(@Nullable EvalContext evalContext, Schema schema) { if (evalContext != null) { timezone = evalContext.getTimeZone(); } return super.bind(evalContext, schema); }
public EvalNode visitUnaryEval(EvalCodeGenContext context, UnaryEval unary, Stack<EvalNode> stack) { stack.push(unary); if (unary.getType() == EvalType.CAST) { visitCast(context, stack, (CastEval) unary); } else if (unary.getType() == EvalType.NOT) { visit(context, unary.getChild(), stack); context.methodvisitor.visitVarInsn(Opcodes.ISTORE, 9); context.methodvisitor.visitVarInsn(Opcodes.ISTORE, 10); context.pushDummyValue(unary.getValueType()); context.pushNullFlag(false); } else if (unary.getType() == EvalType.IS_NULL) { return visitIsNull(context, (IsNullEval) unary, stack); } else if (unary.getType() == EvalType.SIGNED) { visit(context, unary.getChild(), stack); case FLOAT4: context.methodvisitor.visitInsn(Opcodes.FNEG); break; case FLOAT8: context.methodvisitor.visitInsn(Opcodes.DNEG); break; default: throw new InvalidEvalException(unary.getType() + " operation to " + signed.getChild() + " is invalid.");
@Override protected EvalNode visitUnaryEval(Object context, UnaryEval unaryEval, Stack<EvalNode> stack) { stack.push(unaryEval); EvalNode child = unaryEval.getChild(); visit(context, child, stack); if (child.getType() == EvalType.AND || child.getType() == EvalType.OR) { unaryEval.setChild(rewrite((BinaryEval) child)); } stack.pop(); return unaryEval; }
@Override public EvalNode visitUnaryEval(LogicalPlanner.PlanContext context, UnaryEval unaryEval, Stack<EvalNode> stack) { stack.push(unaryEval); EvalNode child = visit(context, unaryEval.getChild(), stack); stack.pop(); unaryEval.setChild(child); if (child.getType() == EvalType.CONST) { // session's time zone String timezoneId = context.getQueryContext().get(SessionVars.TIMEZONE); EvalContext evalContext = new EvalContext(); evalContext.setTimeZone(TimeZone.getTimeZone(timezoneId)); unaryEval.bind(evalContext, null); return new ConstEval(unaryEval.eval(null)); } return unaryEval; }
@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 public EvalNode visitUnaryEval(Object context, UnaryEval unaryEval, Stack<EvalNode> stack) { stack.push(unaryEval); EvalNode child = visit(context, unaryEval.getChild(), stack); stack.pop(); if (child.getType() == EvalType.CONST) { return new ConstEval(unaryEval.bind(null, null).eval(null)); } return unaryEval; }
@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; }
@Override @SuppressWarnings("unchecked") public Datum eval(Tuple tuple) { super.eval(tuple); boolean isNull = child.eval(tuple).isNull(); return DatumFactory.createBool(isNot ^ isNull); }
@Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + (isNot ? 1231 : 1237); return result; }