public static ConstantVectorExpression createStruct(int outputColumnNum, Object value, TypeInfo outputTypeInfo) throws HiveException { ConstantVectorExpression result = new ConstantVectorExpression(outputColumnNum, outputTypeInfo); result.setStructValue(value); return result; }
return new ConstantVectorExpression(outputColumnNum, outputTypeInfo, true); case BOOLEAN: if (((Boolean) constantValue).booleanValue()) { return new ConstantVectorExpression(outputColumnNum, 1, outputTypeInfo); } else { return new ConstantVectorExpression(outputColumnNum, 0, outputTypeInfo); case INT: case LONG: return new ConstantVectorExpression( outputColumnNum, ((Number) constantValue).longValue(), outputTypeInfo); case FLOAT: case DOUBLE: return new ConstantVectorExpression( outputColumnNum, ((Number) constantValue).doubleValue(), outputTypeInfo); case DATE: return new ConstantVectorExpression( outputColumnNum, DateWritableV2.dateToDays((Date) constantValue), outputTypeInfo); case TIMESTAMP: return new ConstantVectorExpression( outputColumnNum, ((org.apache.hadoop.hive.common.type.Timestamp) constantValue).toSqlTimestamp(), outputTypeInfo); case DECIMAL: return new ConstantVectorExpression( outputColumnNum, (HiveDecimal) constantValue, outputTypeInfo); case STRING: return new ConstantVectorExpression(
return new ConstantVectorExpression(outCol, typeName, true); return new ConstantVectorExpression(outCol, 1); } else { return new ConstantVectorExpression(outCol, 0); return new ConstantVectorExpression(outCol, ((Number) constantValue).longValue()); case DATE: return new ConstantVectorExpression(outCol, DateWritable.dateToDays((Date) constantValue)); case TIMESTAMP: return new ConstantVectorExpression(outCol, (Timestamp) constantValue); case INTERVAL_YEAR_MONTH: return new ConstantVectorExpression(outCol, ((HiveIntervalYearMonth) constantValue).getTotalMonths()); case INTERVAL_DAY_TIME: return new ConstantVectorExpression(outCol, (HiveIntervalDayTime) constantValue); case FLOAT_FAMILY: return new ConstantVectorExpression(outCol, ((Number) constantValue).doubleValue()); case DECIMAL: return new ConstantVectorExpression(outCol, (HiveDecimal) constantValue, typeName); case STRING: return new ConstantVectorExpression(outCol, ((String) constantValue).getBytes()); case CHAR: return new ConstantVectorExpression(outCol, ((HiveChar) constantValue), typeName); case VARCHAR: return new ConstantVectorExpression(outCol, ((HiveVarchar) constantValue), typeName); default: throw new HiveException("Unsupported constant type: " + typeName + ", object class " + constantValue.getClass().getSimpleName());
return new ConstantVectorExpression(outCol, typeInfo, true); return new ConstantVectorExpression(outCol, 1, typeInfo); } else { return new ConstantVectorExpression(outCol, 0, typeInfo);
@Test public void testConstantExpression() throws Exception { ConstantVectorExpression longCve = new ConstantVectorExpression(0, 17, TypeInfoFactory.longTypeInfo); ConstantVectorExpression doubleCve = new ConstantVectorExpression(1, 17.34, TypeInfoFactory.doubleTypeInfo); String str = "alpha"; ConstantVectorExpression bytesCve = new ConstantVectorExpression(2, str.getBytes(), TypeInfoFactory.stringTypeInfo); HiveDecimal decVal = HiveDecimal.create("25.8"); ConstantVectorExpression decimalCve = new ConstantVectorExpression(3, decVal, TypeInfoFactory.decimalTypeInfo); ConstantVectorExpression nullCve = new ConstantVectorExpression(4, TypeInfoFactory.stringTypeInfo, true);
return new ConstantVectorExpression(outCol, typeName, true); return new ConstantVectorExpression(outCol, 1); } else { return new ConstantVectorExpression(outCol, 0); return new ConstantVectorExpression(outCol, ((Number) constantValue).longValue()); case DATE: return new ConstantVectorExpression(outCol, DateWritable.dateToDays((Date) constantValue)); case TIMESTAMP: return new ConstantVectorExpression(outCol, TimestampUtils.getTimeNanoSec((Timestamp) constantValue)); case INTERVAL_YEAR_MONTH: return new ConstantVectorExpression(outCol, ((HiveIntervalYearMonth) constantValue).getTotalMonths()); case INTERVAL_DAY_TIME: return new ConstantVectorExpression(outCol, DateUtils.getIntervalDayTimeTotalNanos((HiveIntervalDayTime) constantValue)); case FLOAT_FAMILY: return new ConstantVectorExpression(outCol, ((Number) constantValue).doubleValue()); case DECIMAL: VectorExpression ve = new ConstantVectorExpression(outCol, (HiveDecimal) constantValue); return new ConstantVectorExpression(outCol, ((String) constantValue).getBytes()); case CHAR: return new ConstantVectorExpression(outCol, ((HiveChar) constantValue)); case VARCHAR: return new ConstantVectorExpression(outCol, ((HiveVarchar) constantValue)); default: throw new HiveException("Unsupported constant type: " + typeName + ", object class " + constantValue.getClass().getSimpleName());