[vectorized](function) support array_map function (#17581)
This commit is contained in:
@ -62,6 +62,7 @@ public enum PrimitiveType {
|
||||
DATEV2("DATEV2", 4, TPrimitiveType.DATEV2),
|
||||
DATETIMEV2("DATETIMEV2", 8, TPrimitiveType.DATETIMEV2),
|
||||
TIMEV2("TIMEV2", 8, TPrimitiveType.TIMEV2),
|
||||
LAMBDA_FUNCTION("LAMBDA_FUNCTION", 16, TPrimitiveType.LAMBDA_FUNCTION),
|
||||
|
||||
// sizeof(CollectionValue)
|
||||
ARRAY("ARRAY", 32, TPrimitiveType.ARRAY),
|
||||
|
||||
@ -180,6 +180,8 @@ public class ScalarType extends Type {
|
||||
return BITMAP;
|
||||
case QUANTILE_STATE:
|
||||
return QUANTILE_STATE;
|
||||
case LAMBDA_FUNCTION:
|
||||
return LAMBDA_FUNCTION;
|
||||
case DATE:
|
||||
return DATE;
|
||||
case DATETIME:
|
||||
@ -246,6 +248,8 @@ public class ScalarType extends Type {
|
||||
return BITMAP;
|
||||
case "QUANTILE_STATE":
|
||||
return QUANTILE_STATE;
|
||||
case "LAMBDA_FUNCTION":
|
||||
return LAMBDA_FUNCTION;
|
||||
case "DATE":
|
||||
return DATE;
|
||||
case "DATETIME":
|
||||
@ -619,6 +623,7 @@ public class ScalarType extends Type {
|
||||
case BITMAP:
|
||||
case VARIANT:
|
||||
case QUANTILE_STATE:
|
||||
case LAMBDA_FUNCTION:
|
||||
stringBuilder.append(type.toString().toLowerCase());
|
||||
break;
|
||||
case STRING:
|
||||
|
||||
@ -102,6 +102,7 @@ public abstract class Type {
|
||||
public static final ScalarType CHAR = ScalarType.createCharType(-1);
|
||||
public static final ScalarType BITMAP = new ScalarType(PrimitiveType.BITMAP);
|
||||
public static final ScalarType QUANTILE_STATE = new ScalarType(PrimitiveType.QUANTILE_STATE);
|
||||
public static final ScalarType LAMBDA_FUNCTION = new ScalarType(PrimitiveType.LAMBDA_FUNCTION);
|
||||
// Only used for alias function, to represent any type in function args
|
||||
public static final ScalarType ALL = new ScalarType(PrimitiveType.ALL);
|
||||
public static final MapType MAP = new MapType();
|
||||
@ -405,6 +406,10 @@ public abstract class Type {
|
||||
return isScalarType(PrimitiveType.QUANTILE_STATE);
|
||||
}
|
||||
|
||||
public boolean isLambdaFunctionType() {
|
||||
return isScalarType(PrimitiveType.LAMBDA_FUNCTION);
|
||||
}
|
||||
|
||||
public boolean isObjectStored() {
|
||||
return isHllType() || isBitmapType() || isQuantileStateType();
|
||||
}
|
||||
@ -810,6 +815,8 @@ public abstract class Type {
|
||||
return Type.QUANTILE_STATE;
|
||||
case VARIANT:
|
||||
return new VariantType();
|
||||
case LAMBDA_FUNCTION:
|
||||
return Type.LAMBDA_FUNCTION;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
@ -1585,7 +1592,8 @@ public abstract class Type {
|
||||
|| t1 == PrimitiveType.STRUCT || t2 == PrimitiveType.STRUCT
|
||||
|| t1 == PrimitiveType.TEMPLATE || t2 == PrimitiveType.TEMPLATE
|
||||
|| t1 == PrimitiveType.UNSUPPORTED || t2 == PrimitiveType.UNSUPPORTED
|
||||
|| t1 == PrimitiveType.VARIANT || t2 == PrimitiveType.VARIANT) {
|
||||
|| t1 == PrimitiveType.VARIANT || t2 == PrimitiveType.VARIANT
|
||||
|| t1 == PrimitiveType.LAMBDA_FUNCTION || t2 == PrimitiveType.LAMBDA_FUNCTION) {
|
||||
continue;
|
||||
}
|
||||
Preconditions.checkNotNull(compatibilityMatrix[i][j]);
|
||||
|
||||
Reference in New Issue
Block a user