in tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/BinaryEval.java [76:120]
private DataType determineType(DataType left, DataType right) throws InvalidEvalException {
switch (left.getType()) {
case INT4: {
switch(right.getType()) {
case INT2:
case INT4: return CatalogUtil.newSimpleDataType(Type.INT4);
case INT8: return CatalogUtil.newSimpleDataType(Type.INT8);
case FLOAT4: return CatalogUtil.newSimpleDataType(Type.FLOAT4);
case FLOAT8: return CatalogUtil.newSimpleDataType(Type.FLOAT8);
}
}
case INT8: {
switch(right.getType()) {
case INT2:
case INT4:
case INT8: return CatalogUtil.newSimpleDataType(Type.INT8);
case FLOAT4:
case FLOAT8: return CatalogUtil.newSimpleDataType(Type.FLOAT8);
}
}
case FLOAT4: {
switch(right.getType()) {
case INT2:
case INT4:
case INT8:
case FLOAT4:
case FLOAT8: return CatalogUtil.newSimpleDataType(Type.FLOAT8);
}
}
case FLOAT8: {
switch(right.getType()) {
case INT2:
case INT4:
case INT8:
case FLOAT4:
case FLOAT8: return CatalogUtil.newSimpleDataType(Type.FLOAT8);
}
}
default: return left;
}
}