public boolean isNull() { return type.isNull(); }
@Override public int compareTo(Datum datum) { if (datum.type().isNull()) { return 0; } else { return 1; } }
public static ParamType[] getParamTypes(EvalNode [] arguments) { ParamType[] paramTypes = new ParamType[arguments.length]; for (int i = 0; i < arguments.length; i++) { if (arguments[i].getType() == EvalType.CONST) { if (arguments[i].getValueType().isNull()) { paramTypes[i] = ParamType.NULL; } else { paramTypes[i] = ParamType.CONSTANT; } } else { paramTypes[i] = ParamType.VARIABLE; } } return paramTypes; }
public ParamType [] getParamType() { ParamType [] paramTypes = new ParamType[argEvals.length]; for (int i = 0; i < argEvals.length; i++) { if (argEvals[i].getType() == EvalType.CONST) { if (argEvals[i].getValueType().isNull()) { paramTypes[i] = ParamType.NULL; } else { paramTypes[i] = ParamType.CONSTANT; } } else { paramTypes[i] = ParamType.VARIABLE; } } return paramTypes; }
@Override public org.apache.tajo.type.Type getValueType() { // Find not null type for (IfThenEval eachWhen: whens) { if (!eachWhen.getResult().getValueType().isNull()) { return eachWhen.getResult().getValueType(); } } if (elseResult != null) { // without else clause return elseResult.getValueType(); } return org.apache.tajo.type.Type.Null; }
public void pushDummyValue(org.apache.tajo.type.Type type) { TajoDataTypes.Type baseType = type.kind(); if (type.isNull()) { pushNullOfThreeValuedLogic(); } else if (isJVMInternalInt(type) || baseType == DATE) { push(0); } else if (baseType == INT8 || baseType == TIMESTAMP || baseType == TIME) { push(0L); } else if (baseType == FLOAT8) { push(0.0d); } else if (baseType == FLOAT4) { push(0.0f); } else if (baseType == CHAR || baseType == TEXT) { push(""); } else if (baseType == INTERVAL || baseType == PROTOBUF) { invokeStatic(NullDatum.class, "get", NullDatum.class, new Class[]{}); } else { assert false; } }
context.pushNullFlag(!constEval.getValueType().isNull()); return constEval;
public EvalNode visitField(EvalCodeGenContext context, FieldEval field, Stack<EvalNode> stack) { if (field.getValueType().isNull()) { context.pushNullOfThreeValuedLogic(); context.pushNullFlag(false);