[refactor] Remove decimal v1 related code from code base (#6079)
remove ALL DECIMAL V1 type code , this is a part of #6073
This commit is contained in:
@ -165,7 +165,7 @@ public abstract class AggregateInfoBase {
|
||||
if (!intermediateType.isWildcardDecimal()) {
|
||||
slotDesc.setType(intermediateType);
|
||||
} else {
|
||||
Preconditions.checkState(expr.getType().isDecimal() || expr.getType().isDecimalV2());
|
||||
Preconditions.checkState(expr.getType().isDecimalV2());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -106,10 +106,6 @@ public class ArithmeticExpr extends Expr {
|
||||
Operator.DIVIDE.getName(),
|
||||
Lists.<Type>newArrayList(Type.DOUBLE, Type.DOUBLE),
|
||||
Type.DOUBLE));
|
||||
functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
|
||||
Operator.DIVIDE.getName(),
|
||||
Lists.<Type>newArrayList(Type.DECIMAL, Type.DECIMAL),
|
||||
Type.DECIMAL));
|
||||
functionSet.addBuiltin(ScalarFunction.createBuiltinOperator(
|
||||
Operator.DIVIDE.getName(),
|
||||
Lists.<Type>newArrayList(Type.DECIMALV2, Type.DECIMALV2),
|
||||
@ -167,7 +163,7 @@ public class ArithmeticExpr extends Expr {
|
||||
@Override
|
||||
protected void toThrift(TExprNode msg) {
|
||||
msg.node_type = TExprNodeType.ARITHMETIC_EXPR;
|
||||
if (!type.isDecimal() && !type.isDecimalV2()) {
|
||||
if (!type.isDecimalV2()) {
|
||||
msg.setOpcode(op.getOpcode());
|
||||
msg.setOutputColumn(outputColumn);
|
||||
}
|
||||
@ -203,8 +199,6 @@ public class ArithmeticExpr extends Expr {
|
||||
return Type.DOUBLE;
|
||||
} else if (pt1 == PrimitiveType.DECIMALV2 || pt2 == PrimitiveType.DECIMALV2) {
|
||||
return Type.DECIMALV2;
|
||||
} else if (pt1 == PrimitiveType.DECIMAL || pt2 == PrimitiveType.DECIMAL) {
|
||||
return Type.DECIMAL;
|
||||
} else if (pt1 == PrimitiveType.LARGEINT || pt2 == PrimitiveType.LARGEINT) {
|
||||
return Type.LARGEINT;
|
||||
} else {
|
||||
|
||||
@ -308,10 +308,6 @@ public class BinaryPredicate extends Predicate implements Writable {
|
||||
&& (t2 == PrimitiveType.BIGINT || t2 == PrimitiveType.DECIMALV2)) {
|
||||
return Type.DECIMALV2;
|
||||
}
|
||||
if ((t1 == PrimitiveType.BIGINT || t1 == PrimitiveType.DECIMAL)
|
||||
&& (t2 == PrimitiveType.BIGINT || t2 == PrimitiveType.DECIMAL)) {
|
||||
return Type.DECIMAL;
|
||||
}
|
||||
if ((t1 == PrimitiveType.BIGINT || t1 == PrimitiveType.LARGEINT)
|
||||
&& (t2 == PrimitiveType.BIGINT || t2 == PrimitiveType.LARGEINT)) {
|
||||
return Type.LARGEINT;
|
||||
|
||||
@ -102,7 +102,7 @@ public class CastExpr extends Expr {
|
||||
}
|
||||
// Disable casting from boolean to decimal or datetime or date
|
||||
if (fromType.isBoolean() &&
|
||||
(toType.equals(Type.DECIMAL) || toType.equals(Type.DECIMALV2) ||
|
||||
(toType.equals(Type.DECIMALV2) ||
|
||||
toType.equals(Type.DATETIME) || toType.equals(Type.DATE))) {
|
||||
continue;
|
||||
}
|
||||
@ -111,9 +111,7 @@ public class CastExpr extends Expr {
|
||||
continue;
|
||||
}
|
||||
String beClass = toType.isDecimalV2() || fromType.isDecimalV2() ? "DecimalV2Operators" : "CastFunctions";
|
||||
if (toType.isDecimal() || fromType.isDecimal()) {
|
||||
beClass = "DecimalOperators";
|
||||
} else if (fromType.isTime()) {
|
||||
if (fromType.isTime()) {
|
||||
beClass = "TimeOperators";
|
||||
}
|
||||
String typeName = Function.getUdfTypeName(toType.getPrimitiveType());
|
||||
@ -284,9 +282,10 @@ public class CastExpr extends Expr {
|
||||
return new IntLiteral(value.getLongValue(), type);
|
||||
} else if (type.isLargeIntType()) {
|
||||
return new LargeIntLiteral(value.getStringValue());
|
||||
} else if (type.isDecimal() || type.isDecimalV2()) {
|
||||
} else if (type.isDecimalV2()) {
|
||||
return new DecimalLiteral(value.getStringValue());
|
||||
} else if (type.isFloatingPointType()) {
|
||||
|
||||
return new FloatLiteral(value.getDoubleValue(), type);
|
||||
} else if (type.isStringType()) {
|
||||
return new StringLiteral(value.getStringValue());
|
||||
|
||||
@ -250,7 +250,6 @@ public class ColumnDef {
|
||||
case DOUBLE:
|
||||
FloatLiteral doubleLiteral = new FloatLiteral(defaultValue);
|
||||
break;
|
||||
case DECIMAL:
|
||||
case DECIMALV2:
|
||||
DecimalLiteral decimalLiteral = new DecimalLiteral(defaultValue);
|
||||
decimalLiteral.checkPrecisionAndScale(scalarType.getScalarPrecision(), scalarType.getScalarScale());
|
||||
|
||||
@ -58,7 +58,7 @@ public class CreateTableAsSelectStmt extends StatementBase {
|
||||
|
||||
// TODO(zc): support char, varchar and decimal
|
||||
for (Expr expr : tmpStmt.getResultExprs()) {
|
||||
if (expr.getType().isDecimal() || expr.getType().isDecimalV2() || expr.getType().isStringType()) {
|
||||
if (expr.getType().isDecimalV2() || expr.getType().isStringType()) {
|
||||
ErrorReport.reportAnalysisException(ErrorCode.ERR_UNSUPPORTED_TYPE_IN_CTAS, expr.getType());
|
||||
}
|
||||
}
|
||||
|
||||
@ -130,7 +130,6 @@ public class DecimalLiteral extends LiteralExpr {
|
||||
buffer.order(ByteOrder.LITTLE_ENDIAN);
|
||||
buffer.putLong(value.longValue());
|
||||
break;
|
||||
case DECIMAL:
|
||||
case DECIMALV2:
|
||||
buffer = ByteBuffer.allocate(12);
|
||||
buffer.order(ByteOrder.LITTLE_ENDIAN);
|
||||
@ -234,7 +233,7 @@ public class DecimalLiteral extends LiteralExpr {
|
||||
|
||||
@Override
|
||||
protected Expr uncheckedCastTo(Type targetType) throws AnalysisException {
|
||||
if (targetType.isDecimal() || targetType.isDecimalV2()) {
|
||||
if (targetType.isDecimalV2()) {
|
||||
return this;
|
||||
} else if (targetType.isFloatingPointType()) {
|
||||
return new FloatLiteral(value.doubleValue(), targetType);
|
||||
|
||||
@ -222,7 +222,7 @@ public enum ExpressionFunctions {
|
||||
exprs = new IntLiteral[args.size()];
|
||||
} else if (argType.isDateType()) {
|
||||
exprs = new DateLiteral[args.size()];
|
||||
} else if (argType.isDecimal()) {
|
||||
} else if (argType.isDecimalV2()) {
|
||||
exprs = new DecimalLiteral[args.size()];
|
||||
} else if (argType.isFloatingPointType()) {
|
||||
exprs = new FloatLiteral[args.size()];
|
||||
|
||||
@ -157,7 +157,7 @@ public class FloatLiteral extends LiteralExpr {
|
||||
|
||||
@Override
|
||||
protected Expr uncheckedCastTo(Type targetType) throws AnalysisException {
|
||||
if (!(targetType.isFloatingPointType() || targetType.isDecimal() || targetType.isDecimalV2())) {
|
||||
if (!(targetType.isFloatingPointType() || targetType.isDecimalV2())) {
|
||||
return super.uncheckedCastTo(targetType);
|
||||
}
|
||||
if (targetType.isFloatingPointType()) {
|
||||
@ -167,7 +167,7 @@ public class FloatLiteral extends LiteralExpr {
|
||||
return floatLiteral;
|
||||
}
|
||||
return this;
|
||||
} else if (targetType.isDecimal() || targetType.isDecimalV2()) {
|
||||
} else if (targetType.isDecimalV2()) {
|
||||
return new DecimalLiteral(new BigDecimal(value));
|
||||
}
|
||||
return this;
|
||||
|
||||
@ -127,7 +127,7 @@ public class IndexDef {
|
||||
if (indexType == IndexType.BITMAP) {
|
||||
String indexColName = column.getName();
|
||||
PrimitiveType colType = column.getDataType();
|
||||
if (!(colType.isDateType() || colType.isDecimalType() || colType.isFixedPointType() ||
|
||||
if (!(colType.isDateType() || colType.isDecimalV2Type() || colType.isFixedPointType() ||
|
||||
colType.isStringType() || colType == PrimitiveType.BOOLEAN)) {
|
||||
throw new AnalysisException(colType + " is not supported in bitmap index. "
|
||||
+ "invalid column: " + indexColName);
|
||||
|
||||
@ -307,7 +307,7 @@ public class IntLiteral extends LiteralExpr {
|
||||
}
|
||||
} else if (targetType.isFloatingPointType()) {
|
||||
return new FloatLiteral(new Double(value), targetType);
|
||||
} else if (targetType.isDecimal() || targetType.isDecimalV2()) {
|
||||
} else if (targetType.isDecimalV2()) {
|
||||
return new DecimalLiteral(new BigDecimal(value));
|
||||
}
|
||||
return this;
|
||||
|
||||
@ -191,7 +191,7 @@ public class LargeIntLiteral extends LiteralExpr {
|
||||
protected Expr uncheckedCastTo(Type targetType) throws AnalysisException {
|
||||
if (targetType.isFloatingPointType()) {
|
||||
return new FloatLiteral(new Double(value.doubleValue()), targetType);
|
||||
} else if (targetType.isDecimal() || targetType.isDecimalV2()) {
|
||||
} else if (targetType.isDecimalV2()) {
|
||||
return new DecimalLiteral(new BigDecimal(value));
|
||||
} else if (targetType.isNumericType()) {
|
||||
try {
|
||||
|
||||
@ -66,7 +66,6 @@ public abstract class LiteralExpr extends Expr implements Comparable<LiteralExpr
|
||||
case DOUBLE:
|
||||
literalExpr = new FloatLiteral(value);
|
||||
break;
|
||||
case DECIMAL:
|
||||
case DECIMALV2:
|
||||
literalExpr = new DecimalLiteral(value);
|
||||
break;
|
||||
|
||||
@ -230,7 +230,6 @@ public class StringLiteral extends LiteralExpr {
|
||||
ErrorReport.reportAnalysisException(ErrorCode.ERR_BAD_NUMBER, value);
|
||||
}
|
||||
break;
|
||||
case DECIMAL:
|
||||
case DECIMALV2:
|
||||
return new DecimalLiteral(value);
|
||||
default:
|
||||
|
||||
@ -39,7 +39,7 @@ public class TypeDef implements ParseNode {
|
||||
return new TypeDef(ScalarType.createType(type));
|
||||
}
|
||||
public static TypeDef createDecimal(int precision, int scale) {
|
||||
return new TypeDef(ScalarType.createDecimalType(precision, scale));
|
||||
return new TypeDef(ScalarType.createDecimalV2Type(precision, scale));
|
||||
}
|
||||
public static TypeDef createVarchar(int len) {
|
||||
return new TypeDef(ScalarType.createVarchar(len));
|
||||
@ -102,7 +102,6 @@ public class TypeDef implements ParseNode {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DECIMAL:
|
||||
case DECIMALV2: {
|
||||
int precision = scalarType.decimalPrecision();
|
||||
int scale = scalarType.decimalScale();
|
||||
|
||||
@ -48,7 +48,6 @@ public enum AggregateType {
|
||||
primitiveTypeList.add(PrimitiveType.LARGEINT);
|
||||
primitiveTypeList.add(PrimitiveType.FLOAT);
|
||||
primitiveTypeList.add(PrimitiveType.DOUBLE);
|
||||
primitiveTypeList.add(PrimitiveType.DECIMAL);
|
||||
primitiveTypeList.add(PrimitiveType.DECIMALV2);
|
||||
compatibilityMap.put(SUM, EnumSet.copyOf(primitiveTypeList));
|
||||
|
||||
@ -60,7 +59,6 @@ public enum AggregateType {
|
||||
primitiveTypeList.add(PrimitiveType.LARGEINT);
|
||||
primitiveTypeList.add(PrimitiveType.FLOAT);
|
||||
primitiveTypeList.add(PrimitiveType.DOUBLE);
|
||||
primitiveTypeList.add(PrimitiveType.DECIMAL);
|
||||
primitiveTypeList.add(PrimitiveType.DECIMALV2);
|
||||
primitiveTypeList.add(PrimitiveType.DATE);
|
||||
primitiveTypeList.add(PrimitiveType.DATETIME);
|
||||
@ -76,7 +74,6 @@ public enum AggregateType {
|
||||
primitiveTypeList.add(PrimitiveType.LARGEINT);
|
||||
primitiveTypeList.add(PrimitiveType.FLOAT);
|
||||
primitiveTypeList.add(PrimitiveType.DOUBLE);
|
||||
primitiveTypeList.add(PrimitiveType.DECIMAL);
|
||||
primitiveTypeList.add(PrimitiveType.DECIMALV2);
|
||||
primitiveTypeList.add(PrimitiveType.DATE);
|
||||
primitiveTypeList.add(PrimitiveType.DATETIME);
|
||||
|
||||
@ -333,8 +333,7 @@ public class Column implements Writable {
|
||||
}
|
||||
|
||||
// now we support convert decimal to varchar type
|
||||
if ((getDataType() == PrimitiveType.DECIMAL && other.getDataType() == PrimitiveType.VARCHAR)
|
||||
|| (getDataType() == PrimitiveType.DECIMALV2 && other.getDataType() == PrimitiveType.VARCHAR)) {
|
||||
if (getDataType() == PrimitiveType.DECIMALV2 && other.getDataType() == PrimitiveType.VARCHAR) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -548,7 +547,6 @@ public class Column implements Writable {
|
||||
case VARCHAR:
|
||||
sb.append(String.format(typeStringMap.get(dataType), getStrLen()));
|
||||
break;
|
||||
case DECIMAL:
|
||||
case DECIMALV2:
|
||||
sb.append(String.format(typeStringMap.get(dataType), getPrecision(), getScale()));
|
||||
break;
|
||||
|
||||
@ -99,7 +99,6 @@ public abstract class ColumnType {
|
||||
schemaChangeMatrix[PrimitiveType.CHAR.ordinal()][PrimitiveType.DOUBLE.ordinal()] = true;
|
||||
schemaChangeMatrix[PrimitiveType.CHAR.ordinal()][PrimitiveType.DATE.ordinal()] = true;
|
||||
|
||||
schemaChangeMatrix[PrimitiveType.DECIMAL.ordinal()][PrimitiveType.VARCHAR.ordinal()] = true;
|
||||
schemaChangeMatrix[PrimitiveType.DECIMALV2.ordinal()][PrimitiveType.VARCHAR.ordinal()] = true;
|
||||
|
||||
schemaChangeMatrix[PrimitiveType.DATETIME.ordinal()][PrimitiveType.DATE.ordinal()] = true;
|
||||
@ -114,11 +113,7 @@ public abstract class ColumnType {
|
||||
public static void write(DataOutput out, Type type) throws IOException {
|
||||
Preconditions.checkArgument(type.isScalarType(), "only support scalar type serialization");
|
||||
ScalarType scalarType = (ScalarType) type;
|
||||
if (scalarType.getPrimitiveType() == PrimitiveType.DECIMALV2) {
|
||||
Text.writeString(out, PrimitiveType.DECIMAL.name());
|
||||
} else {
|
||||
Text.writeString(out, scalarType.getPrimitiveType().name());
|
||||
}
|
||||
Text.writeString(out, scalarType.getPrimitiveType().name());
|
||||
out.writeInt(scalarType.getScalarScale());
|
||||
out.writeInt(scalarType.getScalarPrecision());
|
||||
out.writeInt(scalarType.getLength());
|
||||
@ -128,9 +123,6 @@ public abstract class ColumnType {
|
||||
|
||||
public static Type read(DataInput in) throws IOException {
|
||||
PrimitiveType primitiveType = PrimitiveType.valueOf(Text.readString(in));
|
||||
if (primitiveType == PrimitiveType.DECIMAL) {
|
||||
primitiveType = PrimitiveType.DECIMALV2;
|
||||
}
|
||||
int scale = in.readInt();
|
||||
int precision = in.readInt();
|
||||
int len = in.readInt();
|
||||
|
||||
@ -469,8 +469,6 @@ public class Function implements Writable {
|
||||
case DATE:
|
||||
case DATETIME:
|
||||
return "datetime_val";
|
||||
case DECIMAL:
|
||||
return "decimal_val";
|
||||
case DECIMALV2:
|
||||
return "decimalv2_val";
|
||||
default:
|
||||
@ -508,8 +506,6 @@ public class Function implements Writable {
|
||||
case DATE:
|
||||
case DATETIME:
|
||||
return "DateTimeVal";
|
||||
case DECIMAL:
|
||||
return "DecimalVal";
|
||||
case DECIMALV2:
|
||||
return "DecimalV2Val";
|
||||
default:
|
||||
|
||||
@ -112,8 +112,6 @@ public class FunctionSet {
|
||||
"3minIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.DATETIME,
|
||||
"3minIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.DECIMAL,
|
||||
"3minIN9doris_udf10DecimalValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.DECIMALV2,
|
||||
"3minIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.LARGEINT,
|
||||
@ -144,8 +142,6 @@ public class FunctionSet {
|
||||
"3maxIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.DATETIME,
|
||||
"3maxIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.DECIMAL,
|
||||
"3maxIN9doris_udf10DecimalValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.DECIMALV2,
|
||||
"3maxIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.LARGEINT,
|
||||
@ -161,7 +157,6 @@ public class FunctionSet {
|
||||
.put(Type.FLOAT, Type.DOUBLE)
|
||||
.put(Type.DOUBLE, Type.DOUBLE)
|
||||
.put(Type.LARGEINT, Type.LARGEINT)
|
||||
.put(Type.DECIMAL, Type.DECIMAL)
|
||||
.put(Type.DECIMALV2, Type.DECIMALV2)
|
||||
.build();
|
||||
|
||||
@ -432,8 +427,6 @@ public class FunctionSet {
|
||||
"10hll_updateIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
|
||||
.put(Type.DATETIME,
|
||||
"10hll_updateIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
|
||||
.put(Type.DECIMAL,
|
||||
"10hll_updateIN9doris_udf10DecimalValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
|
||||
.put(Type.DECIMALV2,
|
||||
"10hll_updateIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE")
|
||||
.put(Type.LARGEINT,
|
||||
@ -453,8 +446,6 @@ public class FunctionSet {
|
||||
ImmutableMap.<Type, String>builder()
|
||||
.put(Type.BOOLEAN,
|
||||
"14offset_fn_initIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextEPT_")
|
||||
.put(Type.DECIMAL,
|
||||
"14offset_fn_initIN9doris_udf10DecimalValEEEvPNS2_15FunctionContextEPT_")
|
||||
.put(Type.DECIMALV2,
|
||||
"14offset_fn_initIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextEPT_")
|
||||
.put(Type.TINYINT,
|
||||
@ -486,8 +477,6 @@ public class FunctionSet {
|
||||
ImmutableMap.<Type, String>builder()
|
||||
.put(Type.BOOLEAN,
|
||||
"16offset_fn_updateIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextERKT_RKNS2_9BigIntValES8_PS6_")
|
||||
.put(Type.DECIMAL,
|
||||
"16offset_fn_updateIN9doris_udf10DecimalValEEEvPNS2_15FunctionContextERKT_RKNS2_9BigIntValES8_PS6_")
|
||||
.put(Type.DECIMALV2,
|
||||
"16offset_fn_updateIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_RKNS2_9BigIntValES8_PS6_")
|
||||
.put(Type.TINYINT,
|
||||
@ -523,8 +512,6 @@ public class FunctionSet {
|
||||
ImmutableMap.<Type, String>builder()
|
||||
.put(Type.BOOLEAN,
|
||||
"15last_val_updateIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.DECIMAL,
|
||||
"15last_val_updateIN9doris_udf10DecimalValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.DECIMALV2,
|
||||
"15last_val_updateIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.TINYINT,
|
||||
@ -556,9 +543,6 @@ public class FunctionSet {
|
||||
.put(Type.BOOLEAN,
|
||||
"24first_val_rewrite_updateIN9doris_udf10BooleanValEEEvPNS2_15"
|
||||
+ "FunctionContextERKT_RKNS2_9BigIntValEPS6_")
|
||||
.put(Type.DECIMAL,
|
||||
"24first_val_rewrite_updateIN9doris_udf10DecimalValEEEvPNS2_15"
|
||||
+ "FunctionContextERKT_RKNS2_9BigIntValEPS6_")
|
||||
.put(Type.DECIMALV2,
|
||||
"24first_val_rewrite_updateIN9doris_udf12DecimalV2ValEEEvPNS2_15"
|
||||
+ "FunctionContextERKT_RKNS2_9BigIntValEPS6_")
|
||||
@ -598,8 +582,6 @@ public class FunctionSet {
|
||||
ImmutableMap.<Type, String>builder()
|
||||
.put(Type.BOOLEAN,
|
||||
"15last_val_removeIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.DECIMAL,
|
||||
"15last_val_removeIN9doris_udf10DecimalValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.DECIMALV2,
|
||||
"15last_val_removeIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.TINYINT,
|
||||
@ -630,8 +612,6 @@ public class FunctionSet {
|
||||
ImmutableMap.<Type, String>builder()
|
||||
.put(Type.BOOLEAN,
|
||||
"16first_val_updateIN9doris_udf10BooleanValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.DECIMAL,
|
||||
"16first_val_updateIN9doris_udf10DecimalValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.DECIMALV2,
|
||||
"16first_val_updateIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_PS6_")
|
||||
.put(Type.TINYINT,
|
||||
@ -841,8 +821,6 @@ public class FunctionSet {
|
||||
"_ZN5doris13TopNFunctions11topn_updateIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_RKNS2_6IntValEPNS2_9StringValE")
|
||||
.put(Type.DATETIME,
|
||||
"_ZN5doris13TopNFunctions11topn_updateIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_RKNS2_6IntValEPNS2_9StringValE")
|
||||
.put(Type.DECIMAL,
|
||||
"_ZN5doris13TopNFunctions11topn_updateIN9doris_udf10DecimalValEEEvPNS2_15FunctionContextERKT_RKNS2_6IntValEPNS2_9StringValE")
|
||||
.put(Type.DECIMALV2,
|
||||
"_ZN5doris13TopNFunctions11topn_updateIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_RKNS2_6IntValEPNS2_9StringValE")
|
||||
.put(Type.LARGEINT,
|
||||
@ -873,8 +851,6 @@ public class FunctionSet {
|
||||
"_ZN5doris13TopNFunctions11topn_updateIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_RKNS2_6IntValESB_PNS2_9StringValE")
|
||||
.put(Type.DATETIME,
|
||||
"_ZN5doris13TopNFunctions11topn_updateIN9doris_udf11DateTimeValEEEvPNS2_15FunctionContextERKT_RKNS2_6IntValESB_PNS2_9StringValE")
|
||||
.put(Type.DECIMAL,
|
||||
"_ZN5doris13TopNFunctions11topn_updateIN9doris_udf10DecimalValEEEvPNS2_15FunctionContextERKT_RKNS2_6IntValESB_PNS2_9StringValE")
|
||||
.put(Type.DECIMALV2,
|
||||
"_ZN5doris13TopNFunctions11topn_updateIN9doris_udf12DecimalV2ValEEEvPNS2_15FunctionContextERKT_RKNS2_6IntValESB_PNS2_9StringValE")
|
||||
.put(Type.LARGEINT,
|
||||
@ -1090,18 +1066,6 @@ public class FunctionSet {
|
||||
null,
|
||||
prefix + "28count_distinct_date_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
|
||||
false, true, true));
|
||||
} else if (t.equals(Type.DECIMAL)) {
|
||||
addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", Lists.newArrayList(t),
|
||||
Type.BIGINT,
|
||||
Type.VARCHAR,
|
||||
prefix + "34count_or_sum_distinct_decimal_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
|
||||
prefix + "36count_or_sum_distinct_decimal_updateEPN9doris_udf15FunctionContextERNS1_10DecimalValEPNS1_9StringValE",
|
||||
prefix + "35count_or_sum_distinct_decimal_mergeEPN9doris_udf15FunctionContextERNS1_9StringValEPS4_",
|
||||
prefix + "39count_or_sum_distinct_decimal_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
|
||||
null,
|
||||
null,
|
||||
prefix + "31count_distinct_decimal_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
|
||||
false, true, true));
|
||||
} else if (t.equals(Type.DECIMALV2)) {
|
||||
addBuiltin(AggregateFunction.createBuiltin("multi_distinct_count", Lists.newArrayList(t),
|
||||
Type.BIGINT,
|
||||
@ -1129,18 +1093,6 @@ public class FunctionSet {
|
||||
null,
|
||||
prefix + MULTI_DISTINCT_SUM_FINALIZE_SYMBOL.get(t),
|
||||
false, true, true));
|
||||
} else if (t.equals(Type.DECIMAL)) {
|
||||
addBuiltin(AggregateFunction.createBuiltin("multi_distinct_sum", Lists.newArrayList(t),
|
||||
MULTI_DISTINCT_SUM_RETURN_TYPE.get(t),
|
||||
Type.VARCHAR,
|
||||
prefix + "34count_or_sum_distinct_decimal_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
|
||||
prefix + "36count_or_sum_distinct_decimal_updateEPN9doris_udf15FunctionContextERNS1_10DecimalValEPNS1_9StringValE",
|
||||
prefix + "35count_or_sum_distinct_decimal_mergeEPN9doris_udf15FunctionContextERNS1_9StringValEPS4_",
|
||||
prefix + "39count_or_sum_distinct_decimal_serializeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
|
||||
null,
|
||||
null,
|
||||
prefix + "29sum_distinct_decimal_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
|
||||
false, true, true));
|
||||
} else if (t.equals(Type.DECIMALV2)) {
|
||||
addBuiltin(AggregateFunction.createBuiltin("multi_distinct_sum", Lists.newArrayList(t),
|
||||
MULTI_DISTINCT_SUM_RETURN_TYPE.get(t),
|
||||
@ -1355,13 +1307,6 @@ public class FunctionSet {
|
||||
null, null,
|
||||
prefix + "10sum_removeIN9doris_udf9DoubleValES3_EEvPNS2_15FunctionContextERKT_PT0_",
|
||||
null, false, true, false));
|
||||
addBuiltin(AggregateFunction.createBuiltin(name,
|
||||
Lists.<Type>newArrayList(Type.DECIMAL), Type.DECIMAL, Type.DECIMAL, initNull,
|
||||
prefix + "3sumIN9doris_udf10DecimalValES3_EEvPNS2_15FunctionContextERKT_PT0_",
|
||||
prefix + "3sumIN9doris_udf10DecimalValES3_EEvPNS2_15FunctionContextERKT_PT0_",
|
||||
null, null,
|
||||
prefix + "10sum_removeIN9doris_udf10DecimalValES3_EEvPNS2_15FunctionContextERKT_PT0_",
|
||||
null, false, true, false));
|
||||
addBuiltin(AggregateFunction.createBuiltin(name,
|
||||
Lists.<Type>newArrayList(Type.DECIMALV2), Type.DECIMALV2, Type.DECIMALV2, initNull,
|
||||
prefix + "3sumIN9doris_udf12DecimalV2ValES3_EEvPNS2_15FunctionContextERKT_PT0_",
|
||||
@ -1450,16 +1395,6 @@ public class FunctionSet {
|
||||
prefix + "10avg_removeIN9doris_udf9DoubleValEEEvPNS2_15FunctionContextERKT_PNS2_9StringValE",
|
||||
prefix + "12avg_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
|
||||
false, true, false));
|
||||
addBuiltin(AggregateFunction.createBuiltin("avg",
|
||||
Lists.<Type>newArrayList(Type.DECIMAL), Type.DECIMAL, Type.VARCHAR,
|
||||
prefix + "16decimal_avg_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
|
||||
prefix + "18decimal_avg_updateEPN9doris_udf15FunctionContextERKNS1_10DecimalValEPNS1_9StringValE",
|
||||
prefix + "17decimal_avg_mergeEPN9doris_udf15FunctionContextERKNS1_9StringValEPS4_",
|
||||
stringValSerializeOrFinalize,
|
||||
prefix + "21decimal_avg_get_valueEPN9doris_udf15FunctionContextERKNS1_9StringValE",
|
||||
prefix + "18decimal_avg_removeEPN9doris_udf15FunctionContextERKNS1_10DecimalValEPNS1_9StringValE",
|
||||
prefix + "20decimal_avg_finalizeEPN9doris_udf15FunctionContextERKNS1_9StringValE",
|
||||
false, true, false));
|
||||
addBuiltin(AggregateFunction.createBuiltin("avg",
|
||||
Lists.<Type>newArrayList(Type.DECIMALV2), Type.DECIMALV2, Type.VARCHAR,
|
||||
prefix + "18decimalv2_avg_initEPN9doris_udf15FunctionContextEPNS1_9StringValE",
|
||||
|
||||
@ -48,7 +48,6 @@ public enum PrimitiveType {
|
||||
// Aligning to 8 bytes so 16 total.
|
||||
VARCHAR("VARCHAR", 16, TPrimitiveType.VARCHAR),
|
||||
|
||||
DECIMAL("DECIMAL", 40, TPrimitiveType.DECIMAL),
|
||||
DECIMALV2("DECIMALV2", 16, TPrimitiveType.DECIMALV2),
|
||||
|
||||
HLL("HLL", 16, TPrimitiveType.HLL),
|
||||
@ -78,7 +77,6 @@ public enum PrimitiveType {
|
||||
builder.put(NULL_TYPE, DOUBLE);
|
||||
builder.put(NULL_TYPE, DATE);
|
||||
builder.put(NULL_TYPE, DATETIME);
|
||||
builder.put(NULL_TYPE, DECIMAL);
|
||||
builder.put(NULL_TYPE, DECIMALV2);
|
||||
builder.put(NULL_TYPE, CHAR);
|
||||
builder.put(NULL_TYPE, VARCHAR);
|
||||
@ -95,7 +93,6 @@ public enum PrimitiveType {
|
||||
builder.put(BOOLEAN, DOUBLE);
|
||||
builder.put(BOOLEAN, DATE);
|
||||
builder.put(BOOLEAN, DATETIME);
|
||||
builder.put(BOOLEAN, DECIMAL);
|
||||
builder.put(BOOLEAN, DECIMALV2);
|
||||
builder.put(BOOLEAN, VARCHAR);
|
||||
// Tinyint
|
||||
@ -109,7 +106,6 @@ public enum PrimitiveType {
|
||||
builder.put(TINYINT, DOUBLE);
|
||||
builder.put(TINYINT, DATE);
|
||||
builder.put(TINYINT, DATETIME);
|
||||
builder.put(TINYINT, DECIMAL);
|
||||
builder.put(TINYINT, DECIMALV2);
|
||||
builder.put(TINYINT, VARCHAR);
|
||||
// Smallint
|
||||
@ -123,7 +119,6 @@ public enum PrimitiveType {
|
||||
builder.put(SMALLINT, DOUBLE);
|
||||
builder.put(SMALLINT, DATE);
|
||||
builder.put(SMALLINT, DATETIME);
|
||||
builder.put(SMALLINT, DECIMAL);
|
||||
builder.put(SMALLINT, DECIMALV2);
|
||||
builder.put(SMALLINT, VARCHAR);
|
||||
// Int
|
||||
@ -137,7 +132,6 @@ public enum PrimitiveType {
|
||||
builder.put(INT, DOUBLE);
|
||||
builder.put(INT, DATE);
|
||||
builder.put(INT, DATETIME);
|
||||
builder.put(INT, DECIMAL);
|
||||
builder.put(INT, DECIMALV2);
|
||||
builder.put(INT, VARCHAR);
|
||||
// Bigint
|
||||
@ -151,7 +145,6 @@ public enum PrimitiveType {
|
||||
builder.put(BIGINT, DOUBLE);
|
||||
builder.put(BIGINT, DATE);
|
||||
builder.put(BIGINT, DATETIME);
|
||||
builder.put(BIGINT, DECIMAL);
|
||||
builder.put(BIGINT, DECIMALV2);
|
||||
builder.put(BIGINT, VARCHAR);
|
||||
// Largeint
|
||||
@ -165,7 +158,6 @@ public enum PrimitiveType {
|
||||
builder.put(LARGEINT, DOUBLE);
|
||||
builder.put(LARGEINT, DATE);
|
||||
builder.put(LARGEINT, DATETIME);
|
||||
builder.put(LARGEINT, DECIMAL);
|
||||
builder.put(LARGEINT, DECIMALV2);
|
||||
builder.put(LARGEINT, VARCHAR);
|
||||
// Float
|
||||
@ -179,7 +171,6 @@ public enum PrimitiveType {
|
||||
builder.put(FLOAT, DOUBLE);
|
||||
builder.put(FLOAT, DATE);
|
||||
builder.put(FLOAT, DATETIME);
|
||||
builder.put(FLOAT, DECIMAL);
|
||||
builder.put(FLOAT, DECIMALV2);
|
||||
builder.put(FLOAT, VARCHAR);
|
||||
// Double
|
||||
@ -193,7 +184,6 @@ public enum PrimitiveType {
|
||||
builder.put(DOUBLE, DOUBLE);
|
||||
builder.put(DOUBLE, DATE);
|
||||
builder.put(DOUBLE, DATETIME);
|
||||
builder.put(DOUBLE, DECIMAL);
|
||||
builder.put(DOUBLE, DECIMALV2);
|
||||
builder.put(DOUBLE, VARCHAR);
|
||||
// Date
|
||||
@ -207,7 +197,6 @@ public enum PrimitiveType {
|
||||
builder.put(DATE, DOUBLE);
|
||||
builder.put(DATE, DATE);
|
||||
builder.put(DATE, DATETIME);
|
||||
builder.put(DATE, DECIMAL);
|
||||
builder.put(DATE, DECIMALV2);
|
||||
builder.put(DATE, VARCHAR);
|
||||
// Datetime
|
||||
@ -221,7 +210,6 @@ public enum PrimitiveType {
|
||||
builder.put(DATETIME, DOUBLE);
|
||||
builder.put(DATETIME, DATE);
|
||||
builder.put(DATETIME, DATETIME);
|
||||
builder.put(DATETIME, DECIMAL);
|
||||
builder.put(DATETIME, DECIMALV2);
|
||||
builder.put(DATETIME, VARCHAR);
|
||||
// Char
|
||||
@ -238,23 +226,11 @@ public enum PrimitiveType {
|
||||
builder.put(VARCHAR, DOUBLE);
|
||||
builder.put(VARCHAR, DATE);
|
||||
builder.put(VARCHAR, DATETIME);
|
||||
builder.put(VARCHAR, DECIMAL);
|
||||
builder.put(VARCHAR, DECIMALV2);
|
||||
builder.put(VARCHAR, VARCHAR);
|
||||
builder.put(VARCHAR, HLL);
|
||||
builder.put(VARCHAR, BITMAP);
|
||||
// Decimal
|
||||
builder.put(DECIMAL, BOOLEAN);
|
||||
builder.put(DECIMAL, TINYINT);
|
||||
builder.put(DECIMAL, SMALLINT);
|
||||
builder.put(DECIMAL, INT);
|
||||
builder.put(DECIMAL, BIGINT);
|
||||
builder.put(DECIMAL, LARGEINT);
|
||||
builder.put(DECIMAL, FLOAT);
|
||||
builder.put(DECIMAL, DOUBLE);
|
||||
builder.put(DECIMAL, DECIMAL);
|
||||
builder.put(DECIMAL, DECIMALV2);
|
||||
builder.put(DECIMAL, VARCHAR);
|
||||
|
||||
// DecimalV2
|
||||
builder.put(DECIMALV2, BOOLEAN);
|
||||
builder.put(DECIMALV2, TINYINT);
|
||||
@ -264,7 +240,6 @@ public enum PrimitiveType {
|
||||
builder.put(DECIMALV2, LARGEINT);
|
||||
builder.put(DECIMALV2, FLOAT);
|
||||
builder.put(DECIMALV2, DOUBLE);
|
||||
builder.put(DECIMALV2, DECIMAL);
|
||||
builder.put(DECIMALV2, DECIMALV2);
|
||||
builder.put(DECIMALV2, VARCHAR);
|
||||
|
||||
@ -303,7 +278,6 @@ public enum PrimitiveType {
|
||||
numericTypes.add(LARGEINT);
|
||||
numericTypes.add(FLOAT);
|
||||
numericTypes.add(DOUBLE);
|
||||
numericTypes.add(DECIMAL);
|
||||
numericTypes.add(DECIMALV2);
|
||||
|
||||
supportedTypes = Lists.newArrayList();
|
||||
@ -322,7 +296,6 @@ public enum PrimitiveType {
|
||||
supportedTypes.add(DATE);
|
||||
supportedTypes.add(DATETIME);
|
||||
supportedTypes.add(TIME);
|
||||
supportedTypes.add(DECIMAL);
|
||||
supportedTypes.add(DECIMALV2);
|
||||
supportedTypes.add(BITMAP);
|
||||
}
|
||||
@ -374,7 +347,6 @@ public enum PrimitiveType {
|
||||
compatibilityMatrix[NULL_TYPE.ordinal()][DATETIME.ordinal()] = DATETIME;
|
||||
compatibilityMatrix[NULL_TYPE.ordinal()][CHAR.ordinal()] = CHAR;
|
||||
compatibilityMatrix[NULL_TYPE.ordinal()][VARCHAR.ordinal()] = VARCHAR;
|
||||
compatibilityMatrix[NULL_TYPE.ordinal()][DECIMAL.ordinal()] = DECIMAL;
|
||||
compatibilityMatrix[NULL_TYPE.ordinal()][DECIMALV2.ordinal()] = DECIMALV2;
|
||||
compatibilityMatrix[NULL_TYPE.ordinal()][TIME.ordinal()] = TIME;
|
||||
compatibilityMatrix[NULL_TYPE.ordinal()][BITMAP.ordinal()] = BITMAP;
|
||||
@ -391,7 +363,6 @@ public enum PrimitiveType {
|
||||
compatibilityMatrix[BOOLEAN.ordinal()][DATETIME.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[BOOLEAN.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[BOOLEAN.ordinal()][VARCHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[BOOLEAN.ordinal()][DECIMAL.ordinal()] = DECIMAL;
|
||||
compatibilityMatrix[BOOLEAN.ordinal()][DECIMALV2.ordinal()] = DECIMALV2;
|
||||
compatibilityMatrix[BOOLEAN.ordinal()][TIME.ordinal()] = TIME;
|
||||
|
||||
@ -406,7 +377,6 @@ public enum PrimitiveType {
|
||||
compatibilityMatrix[TINYINT.ordinal()][DATETIME.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[TINYINT.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[TINYINT.ordinal()][VARCHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[TINYINT.ordinal()][DECIMAL.ordinal()] = DECIMAL;
|
||||
compatibilityMatrix[TINYINT.ordinal()][DECIMALV2.ordinal()] = DECIMALV2;
|
||||
compatibilityMatrix[TINYINT.ordinal()][TIME.ordinal()] = TIME;
|
||||
|
||||
@ -420,7 +390,6 @@ public enum PrimitiveType {
|
||||
compatibilityMatrix[SMALLINT.ordinal()][DATETIME.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[SMALLINT.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[SMALLINT.ordinal()][VARCHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[SMALLINT.ordinal()][DECIMAL.ordinal()] = DECIMAL;
|
||||
compatibilityMatrix[SMALLINT.ordinal()][DECIMALV2.ordinal()] = DECIMALV2;
|
||||
compatibilityMatrix[SMALLINT.ordinal()][TIME.ordinal()] = TIME;
|
||||
|
||||
@ -433,7 +402,6 @@ public enum PrimitiveType {
|
||||
compatibilityMatrix[INT.ordinal()][DATETIME.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[INT.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[INT.ordinal()][VARCHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[INT.ordinal()][DECIMAL.ordinal()] = DECIMAL;
|
||||
compatibilityMatrix[INT.ordinal()][DECIMALV2.ordinal()] = DECIMALV2;
|
||||
compatibilityMatrix[INT.ordinal()][TIME.ordinal()] = TIME;
|
||||
|
||||
@ -445,7 +413,6 @@ public enum PrimitiveType {
|
||||
compatibilityMatrix[BIGINT.ordinal()][DATETIME.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[BIGINT.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[BIGINT.ordinal()][VARCHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[BIGINT.ordinal()][DECIMAL.ordinal()] = DECIMAL;
|
||||
compatibilityMatrix[BIGINT.ordinal()][DECIMALV2.ordinal()] = DECIMALV2;
|
||||
compatibilityMatrix[BIGINT.ordinal()][TIME.ordinal()] = TIME;
|
||||
|
||||
@ -456,7 +423,6 @@ public enum PrimitiveType {
|
||||
compatibilityMatrix[LARGEINT.ordinal()][DATETIME.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[LARGEINT.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[LARGEINT.ordinal()][VARCHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[LARGEINT.ordinal()][DECIMAL.ordinal()] = DECIMAL;
|
||||
compatibilityMatrix[LARGEINT.ordinal()][DECIMALV2.ordinal()] = DECIMALV2;
|
||||
compatibilityMatrix[LARGEINT.ordinal()][TIME.ordinal()] = TIME;
|
||||
|
||||
@ -466,7 +432,6 @@ public enum PrimitiveType {
|
||||
compatibilityMatrix[FLOAT.ordinal()][DATETIME.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[FLOAT.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[FLOAT.ordinal()][VARCHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[FLOAT.ordinal()][DECIMAL.ordinal()] = DECIMAL;
|
||||
compatibilityMatrix[FLOAT.ordinal()][DECIMALV2.ordinal()] = DECIMALV2;
|
||||
compatibilityMatrix[FLOAT.ordinal()][TIME.ordinal()] = TIME;
|
||||
|
||||
@ -475,7 +440,6 @@ public enum PrimitiveType {
|
||||
compatibilityMatrix[DOUBLE.ordinal()][DATETIME.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[DOUBLE.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[DOUBLE.ordinal()][VARCHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[DOUBLE.ordinal()][DECIMAL.ordinal()] = DECIMAL;
|
||||
compatibilityMatrix[DOUBLE.ordinal()][DECIMALV2.ordinal()] = DECIMALV2;
|
||||
compatibilityMatrix[DOUBLE.ordinal()][TIME.ordinal()] = TIME;
|
||||
|
||||
@ -483,31 +447,25 @@ public enum PrimitiveType {
|
||||
compatibilityMatrix[DATE.ordinal()][DATETIME.ordinal()] = DATETIME;
|
||||
compatibilityMatrix[DATE.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[DATE.ordinal()][VARCHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[DATE.ordinal()][DECIMAL.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[DATE.ordinal()][DECIMALV2.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[DATE.ordinal()][TIME.ordinal()] = INVALID_TYPE;
|
||||
|
||||
compatibilityMatrix[DATETIME.ordinal()][DATETIME.ordinal()] = DATETIME;
|
||||
compatibilityMatrix[DATETIME.ordinal()][CHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[DATETIME.ordinal()][VARCHAR.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[DATETIME.ordinal()][DECIMAL.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[DATETIME.ordinal()][DECIMALV2.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[DATETIME.ordinal()][TIME.ordinal()] = INVALID_TYPE;
|
||||
|
||||
compatibilityMatrix[CHAR.ordinal()][CHAR.ordinal()] = CHAR;
|
||||
compatibilityMatrix[CHAR.ordinal()][VARCHAR.ordinal()] = VARCHAR;
|
||||
compatibilityMatrix[CHAR.ordinal()][DECIMAL.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[CHAR.ordinal()][DECIMALV2.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[CHAR.ordinal()][TIME.ordinal()] = INVALID_TYPE;
|
||||
|
||||
compatibilityMatrix[VARCHAR.ordinal()][VARCHAR.ordinal()] = VARCHAR;
|
||||
compatibilityMatrix[VARCHAR.ordinal()][DECIMAL.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[VARCHAR.ordinal()][DECIMALV2.ordinal()] = INVALID_TYPE;
|
||||
compatibilityMatrix[VARCHAR.ordinal()][TIME.ordinal()] = INVALID_TYPE;
|
||||
|
||||
compatibilityMatrix[DECIMAL.ordinal()][DECIMAL.ordinal()] = DECIMAL;
|
||||
compatibilityMatrix[DECIMALV2.ordinal()][DECIMALV2.ordinal()] = DECIMALV2;
|
||||
compatibilityMatrix[DECIMALV2.ordinal()][DECIMAL.ordinal()] = DECIMALV2;
|
||||
compatibilityMatrix[DECIMALV2.ordinal()][TIME.ordinal()] = INVALID_TYPE;
|
||||
|
||||
compatibilityMatrix[HLL.ordinal()][HLL.ordinal()] = HLL;
|
||||
@ -597,7 +555,7 @@ public enum PrimitiveType {
|
||||
}
|
||||
|
||||
public static int getMaxSlotSize() {
|
||||
return DECIMAL.slotSize;
|
||||
return DECIMALV2.slotSize;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -650,16 +608,13 @@ public enum PrimitiveType {
|
||||
return this == FLOAT || this == DOUBLE;
|
||||
}
|
||||
|
||||
public boolean isDecimalType() {
|
||||
return this == DECIMAL;
|
||||
}
|
||||
|
||||
public boolean isDecimalV2Type() {
|
||||
return this == DECIMALV2;
|
||||
}
|
||||
|
||||
public boolean isNumericType() {
|
||||
return isFixedPointType() || isFloatingPointType() || isDecimalType() || isDecimalV2Type();
|
||||
return isFixedPointType() || isFloatingPointType() || isDecimalV2Type();
|
||||
}
|
||||
|
||||
public boolean isValid() {
|
||||
@ -715,7 +670,6 @@ public enum PrimitiveType {
|
||||
return MysqlColType.MYSQL_TYPE_DATETIME;
|
||||
}
|
||||
}
|
||||
case DECIMAL:
|
||||
case DECIMALV2:
|
||||
return MysqlColType.MYSQL_TYPE_NEWDECIMAL;
|
||||
default:
|
||||
@ -734,7 +688,6 @@ public enum PrimitiveType {
|
||||
case CHAR:
|
||||
// char index size is length
|
||||
return -1;
|
||||
case DECIMAL:
|
||||
case DECIMALV2:
|
||||
return DECIMAL_INDEX_LEN;
|
||||
default:
|
||||
|
||||
@ -173,10 +173,6 @@ public class ScalarFunction extends Function {
|
||||
case DATETIME:
|
||||
beFn += "_datetime_val";
|
||||
break;
|
||||
case DECIMAL:
|
||||
beFn += "_decimal_val";
|
||||
usesDecimal = true;
|
||||
break;
|
||||
case DECIMALV2:
|
||||
beFn += "_decimalv2_val";
|
||||
usesDecimalV2 = true;
|
||||
|
||||
@ -92,8 +92,6 @@ public class ScalarType extends Type {
|
||||
return createCharType(len);
|
||||
case VARCHAR:
|
||||
return createVarcharType(len);
|
||||
case DECIMAL:
|
||||
return createDecimalType(precision, scale);
|
||||
case DECIMALV2:
|
||||
return createDecimalV2Type(precision, scale);
|
||||
default:
|
||||
@ -135,8 +133,6 @@ public class ScalarType extends Type {
|
||||
return DATETIME;
|
||||
case TIME:
|
||||
return TIME;
|
||||
case DECIMAL:
|
||||
return (ScalarType) createDecimalType();
|
||||
case DECIMALV2:
|
||||
return DEFAULT_DECIMALV2;
|
||||
case LARGEINT:
|
||||
@ -183,7 +179,6 @@ public class ScalarType extends Type {
|
||||
case "TIME":
|
||||
return TIME;
|
||||
case "DECIMAL":
|
||||
return (ScalarType) createDecimalType();
|
||||
case "DECIMALV2":
|
||||
return (ScalarType) createDecimalV2Type();
|
||||
case "LARGEINT":
|
||||
@ -207,31 +202,14 @@ public class ScalarType extends Type {
|
||||
return type;
|
||||
}
|
||||
|
||||
public static ScalarType createDecimalType() {
|
||||
return DEFAULT_DECIMAL;
|
||||
}
|
||||
|
||||
public static ScalarType createDecimalV2Type() {
|
||||
return DEFAULT_DECIMALV2;
|
||||
}
|
||||
|
||||
public static ScalarType createDecimalType(int precision) {
|
||||
return createDecimalType(precision, DEFAULT_SCALE);
|
||||
}
|
||||
|
||||
public static ScalarType createDecimalV2Type(int precision) {
|
||||
return createDecimalV2Type(precision, DEFAULT_SCALE);
|
||||
}
|
||||
|
||||
public static ScalarType createDecimalType(int precision, int scale) {
|
||||
// Preconditions.checkState(precision >= 0); // Enforced by parser
|
||||
// Preconditions.checkState(scale >= 0); // Enforced by parser.
|
||||
ScalarType type = new ScalarType(PrimitiveType.DECIMAL);
|
||||
type.precision = precision;
|
||||
type.scale = scale;
|
||||
return type;
|
||||
}
|
||||
|
||||
public static ScalarType createDecimalV2Type(int precision, int scale) {
|
||||
// Preconditions.checkState(precision >= 0); // Enforced by parser
|
||||
// Preconditions.checkState(scale >= 0); // Enforced by parser.
|
||||
@ -241,16 +219,6 @@ public class ScalarType extends Type {
|
||||
return type;
|
||||
}
|
||||
|
||||
// Identical to createDecimalType except that higher precisions are truncated
|
||||
// to the max storable precision. The BE will report overflow in these cases
|
||||
// (think of this as adding ints to BIGINT but BIGINT can still overflow).
|
||||
public static ScalarType createDecimalTypeInternal(int precision, int scale) {
|
||||
ScalarType type = new ScalarType(PrimitiveType.DECIMAL);
|
||||
type.precision = Math.min(precision, MAX_PRECISION);
|
||||
type.scale = Math.min(type.precision, scale);
|
||||
return type;
|
||||
}
|
||||
|
||||
public static ScalarType createDecimalV2TypeInternal(int precision, int scale) {
|
||||
ScalarType type = new ScalarType(PrimitiveType.DECIMALV2);
|
||||
type.precision = Math.min(precision, MAX_PRECISION);
|
||||
@ -289,11 +257,6 @@ public class ScalarType extends Type {
|
||||
return "CHAR(*)";
|
||||
}
|
||||
return "CHAR(" + len + ")";
|
||||
} else if (type == PrimitiveType.DECIMAL) {
|
||||
if (isWildcardDecimal()) {
|
||||
return "DECIMAL(*,*)";
|
||||
}
|
||||
return "DECIMAL(" + precision + "," + scale + ")";
|
||||
} else if (type == PrimitiveType.DECIMALV2) {
|
||||
if (isWildcardDecimal()) {
|
||||
return "DECIMAL(*,*)";
|
||||
@ -318,9 +281,6 @@ public class ScalarType extends Type {
|
||||
case VARCHAR:
|
||||
stringBuilder.append("varchar").append("(").append(len).append(")");
|
||||
break;
|
||||
case DECIMAL:
|
||||
stringBuilder.append("decimal").append("(").append(precision).append(", ").append(scale).append(")");
|
||||
break;
|
||||
case DECIMALV2:
|
||||
stringBuilder.append("decimal").append("(").append(precision).append(", ").append(scale).append(")");
|
||||
break;
|
||||
@ -371,7 +331,6 @@ public class ScalarType extends Type {
|
||||
node.setScalarType(scalarType);
|
||||
break;
|
||||
}
|
||||
case DECIMAL:
|
||||
case DECIMALV2: {
|
||||
node.setType(TTypeNodeType.SCALAR);
|
||||
TScalarType scalarType = new TScalarType();
|
||||
@ -400,12 +359,12 @@ public class ScalarType extends Type {
|
||||
}
|
||||
|
||||
public int decimalPrecision() {
|
||||
Preconditions.checkState(type == PrimitiveType.DECIMAL || type == PrimitiveType.DECIMALV2);
|
||||
Preconditions.checkState(type == PrimitiveType.DECIMALV2);
|
||||
return precision;
|
||||
}
|
||||
|
||||
public int decimalScale() {
|
||||
Preconditions.checkState(type == PrimitiveType.DECIMAL || type == PrimitiveType.DECIMALV2);
|
||||
Preconditions.checkState(type == PrimitiveType.DECIMALV2);
|
||||
return scale;
|
||||
}
|
||||
|
||||
@ -423,7 +382,7 @@ public class ScalarType extends Type {
|
||||
|
||||
@Override
|
||||
public boolean isWildcardDecimal() {
|
||||
return (type == PrimitiveType.DECIMAL || type == PrimitiveType.DECIMALV2)
|
||||
return (type == PrimitiveType.DECIMALV2)
|
||||
&& precision == -1 && scale == -1;
|
||||
}
|
||||
|
||||
@ -437,18 +396,6 @@ public class ScalarType extends Type {
|
||||
return type == PrimitiveType.CHAR && len == -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if this type is a fully specified (not wild card) decimal.
|
||||
*/
|
||||
@Override
|
||||
public boolean isFullySpecifiedDecimal() {
|
||||
if (!isDecimal() && !isDecimalV2()) return false;
|
||||
if (isWildcardDecimal()) return false;
|
||||
if (precision <= 0 || precision > MAX_PRECISION) return false;
|
||||
if (scale < 0 || scale > precision) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFixedLengthType() {
|
||||
return type == PrimitiveType.BOOLEAN || type == PrimitiveType.TINYINT
|
||||
@ -456,7 +403,7 @@ public class ScalarType extends Type {
|
||||
|| type == PrimitiveType.BIGINT || type == PrimitiveType.FLOAT
|
||||
|| type == PrimitiveType.DOUBLE || type == PrimitiveType.DATE
|
||||
|| type == PrimitiveType.DATETIME || type == PrimitiveType.DECIMALV2
|
||||
|| type == PrimitiveType.CHAR || type == PrimitiveType.DECIMAL;
|
||||
|| type == PrimitiveType.CHAR;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -513,13 +460,10 @@ public class ScalarType extends Type {
|
||||
if (type == PrimitiveType.HLL && scalarType.isStringType()) {
|
||||
return true;
|
||||
}
|
||||
if ((isDecimal() || isDecimalV2()) && scalarType.isWildcardDecimal()) {
|
||||
if (isDecimalV2() && scalarType.isWildcardDecimal()) {
|
||||
Preconditions.checkState(!isWildcardDecimal());
|
||||
return true;
|
||||
}
|
||||
if (isDecimal() && scalarType.isDecimal()) {
|
||||
return true;
|
||||
}
|
||||
if (isDecimalV2() && scalarType.isDecimalV2()) {
|
||||
return true;
|
||||
}
|
||||
@ -541,7 +485,7 @@ public class ScalarType extends Type {
|
||||
if (type == PrimitiveType.VARCHAR) {
|
||||
return len == other.len;
|
||||
}
|
||||
if (type == PrimitiveType.DECIMAL || type == PrimitiveType.DECIMALV2) {
|
||||
if ( type == PrimitiveType.DECIMALV2) {
|
||||
return precision == other.precision && scale == other.scale;
|
||||
}
|
||||
return true;
|
||||
@ -555,8 +499,6 @@ public class ScalarType extends Type {
|
||||
return ScalarType.DOUBLE;
|
||||
} else if (isNull()) {
|
||||
return ScalarType.NULL;
|
||||
} else if (isDecimal()) {
|
||||
return createDecimalTypeInternal(MAX_PRECISION, scale);
|
||||
} else if (isDecimalV2()) {
|
||||
return createDecimalV2TypeInternal(MAX_PRECISION, scale);
|
||||
} else if (isLargeIntType()) {
|
||||
@ -570,8 +512,6 @@ public class ScalarType extends Type {
|
||||
Preconditions.checkState(isNumericType() || isNull());
|
||||
if (type == PrimitiveType.DOUBLE || type == PrimitiveType.BIGINT || isNull()) {
|
||||
return this;
|
||||
} else if (type == PrimitiveType.DECIMAL) {
|
||||
return createDecimalTypeInternal(MAX_PRECISION, scale);
|
||||
} else if (type == PrimitiveType.DECIMALV2) {
|
||||
return createDecimalV2TypeInternal(MAX_PRECISION, scale);
|
||||
}
|
||||
@ -586,17 +526,16 @@ public class ScalarType extends Type {
|
||||
switch (type) {
|
||||
case NULL_TYPE:
|
||||
return Type.NULL;
|
||||
case DECIMAL:
|
||||
case DECIMALV2:
|
||||
return this;
|
||||
case TINYINT:
|
||||
return createDecimalType(3);
|
||||
return createDecimalV2Type(3);
|
||||
case SMALLINT:
|
||||
return createDecimalType(5);
|
||||
return createDecimalV2Type(5);
|
||||
case INT:
|
||||
return createDecimalType(10);
|
||||
return createDecimalV2Type(10);
|
||||
case BIGINT:
|
||||
return createDecimalType(19);
|
||||
return createDecimalV2Type(19);
|
||||
case FLOAT:
|
||||
return createDecimalV2TypeInternal(MAX_PRECISION, 9);
|
||||
case DOUBLE:
|
||||
@ -613,8 +552,8 @@ public class ScalarType extends Type {
|
||||
* the decimal point must be greater or equal.
|
||||
*/
|
||||
public boolean isSupertypeOf(ScalarType o) {
|
||||
Preconditions.checkState(isDecimal() || isDecimalV2());
|
||||
Preconditions.checkState(o.isDecimal() || o.isDecimalV2());
|
||||
Preconditions.checkState(isDecimalV2());
|
||||
Preconditions.checkState(o.isDecimalV2());
|
||||
if (isWildcardDecimal()) {
|
||||
return true;
|
||||
}
|
||||
@ -658,8 +597,8 @@ public class ScalarType extends Type {
|
||||
return createVarcharType(Math.max(t1.len, t2.len));
|
||||
}
|
||||
|
||||
if ((t1.isDecimal() || t1.isDecimalV2()) && t2.isDate()
|
||||
|| t1.isDate() && (t2.isDecimal() || t2.isDecimalV2())) {
|
||||
if (t1.isDecimalV2() && t2.isDate()
|
||||
|| t1.isDate() && t2.isDecimalV2()) {
|
||||
return INVALID;
|
||||
}
|
||||
|
||||
@ -667,40 +606,6 @@ public class ScalarType extends Type {
|
||||
return DECIMALV2;
|
||||
}
|
||||
|
||||
if (t1.isDecimal() || t2.isDecimal()) {
|
||||
return DECIMAL;
|
||||
// // The case of decimal and float/double must be handled carefully. There are two
|
||||
// // modes: strict and non-strict. In non-strict mode, we convert to the floating
|
||||
// // point type, since it can contain a larger range of values than any decimal (but
|
||||
// // has lower precision in some parts of its range), so it is generally better.
|
||||
// // In strict mode, we avoid conversion in either direction because there are also
|
||||
// // decimal values (e.g. 0.1) that cannot be exactly represented in binary
|
||||
// // floating point.
|
||||
// // TODO: it might make sense to promote to double in many cases, but this would
|
||||
// // require more work elsewhere to avoid breaking things, e.g. inserting decimal
|
||||
// // literals into float columns.
|
||||
// if (t1.isFloatingPointType()) return strict ? INVALID : t1;
|
||||
// if (t2.isFloatingPointType()) return strict ? INVALID : t2;
|
||||
//
|
||||
// // Allow casts between decimal and numeric types by converting
|
||||
// // numeric types to the containing decimal type.
|
||||
// ScalarType t1Decimal = t1.getMinResolutionDecimal();
|
||||
// ScalarType t2Decimal = t2.getMinResolutionDecimal();
|
||||
// if (t1Decimal.isInvalid() || t2Decimal.isInvalid()) return Type.INVALID;
|
||||
// Preconditions.checkState(t1Decimal.isDecimal());
|
||||
// Preconditions.checkState(t2Decimal.isDecimal());
|
||||
//
|
||||
// if (t1Decimal.equals(t2Decimal)) {
|
||||
// Preconditions.checkState(!(t1.isDecimal() && t2.isDecimal()));
|
||||
// // The containing decimal type for a non-decimal type is always an exclusive
|
||||
// // upper bound, therefore the decimal has higher precision.
|
||||
// return t1Decimal;
|
||||
// }
|
||||
// if (t1Decimal.isSupertypeOf(t2Decimal)) return t1;
|
||||
// if (t2Decimal.isSupertypeOf(t1Decimal)) return t2;
|
||||
// return TypesUtil.getDecimalAssignmentCompatibleType(t1Decimal, t2Decimal);
|
||||
}
|
||||
|
||||
PrimitiveType smallerType =
|
||||
(t1.type.ordinal() < t2.type.ordinal() ? t1.type : t2.type);
|
||||
PrimitiveType largerType =
|
||||
@ -751,8 +656,6 @@ public class ScalarType extends Type {
|
||||
return 12;
|
||||
case DATE:
|
||||
return 3;
|
||||
case DECIMAL:
|
||||
return 40;
|
||||
case CHAR:
|
||||
case VARCHAR:
|
||||
return len;
|
||||
@ -772,7 +675,7 @@ public class ScalarType extends Type {
|
||||
if (type == PrimitiveType.CHAR || type == PrimitiveType.VARCHAR || type == PrimitiveType.HLL) {
|
||||
thrift.setLen(len);
|
||||
}
|
||||
if (type == PrimitiveType.DECIMAL || type == PrimitiveType.DECIMALV2) {
|
||||
if (type == PrimitiveType.DECIMALV2) {
|
||||
thrift.setPrecision(precision);
|
||||
thrift.setScale(scale);
|
||||
}
|
||||
|
||||
@ -65,13 +65,9 @@ public abstract class Type {
|
||||
public static final ScalarType DATE = new ScalarType(PrimitiveType.DATE);
|
||||
public static final ScalarType DATETIME = new ScalarType(PrimitiveType.DATETIME);
|
||||
public static final ScalarType TIME = new ScalarType(PrimitiveType.TIME);
|
||||
public static final ScalarType DEFAULT_DECIMAL = (ScalarType)
|
||||
ScalarType.createDecimalType(ScalarType.DEFAULT_PRECISION,
|
||||
ScalarType.DEFAULT_SCALE);
|
||||
public static final ScalarType DEFAULT_DECIMALV2 = (ScalarType)
|
||||
ScalarType.createDecimalV2Type(ScalarType.DEFAULT_PRECISION,
|
||||
ScalarType.DEFAULT_SCALE);
|
||||
public static final ScalarType DECIMAL = DEFAULT_DECIMAL;
|
||||
public static final ScalarType DECIMALV2 = DEFAULT_DECIMALV2;
|
||||
// (ScalarType) ScalarType.createDecimalTypeInternal(-1, -1);
|
||||
public static final ScalarType DEFAULT_VARCHAR = ScalarType.createVarcharType(-1);
|
||||
@ -100,7 +96,6 @@ public abstract class Type {
|
||||
numericTypes.add(LARGEINT);
|
||||
numericTypes.add(FLOAT);
|
||||
numericTypes.add(DOUBLE);
|
||||
numericTypes.add(DECIMAL);
|
||||
numericTypes.add(DECIMALV2);
|
||||
|
||||
supportedTypes = Lists.newArrayList();
|
||||
@ -119,7 +114,6 @@ public abstract class Type {
|
||||
supportedTypes.add(CHAR);
|
||||
supportedTypes.add(DATE);
|
||||
supportedTypes.add(DATETIME);
|
||||
supportedTypes.add(DECIMAL);
|
||||
supportedTypes.add(DECIMALV2);
|
||||
supportedTypes.add(TIME);
|
||||
}
|
||||
@ -173,16 +167,10 @@ public abstract class Type {
|
||||
return isScalarType(PrimitiveType.BOOLEAN);
|
||||
}
|
||||
|
||||
public boolean isDecimal() {
|
||||
return isScalarType(PrimitiveType.DECIMAL);
|
||||
}
|
||||
|
||||
public boolean isDecimalV2() {
|
||||
return isScalarType(PrimitiveType.DECIMALV2);
|
||||
}
|
||||
|
||||
public boolean isDecimalOrNull() { return isDecimal() || isNull(); }
|
||||
public boolean isFullySpecifiedDecimal() { return false; }
|
||||
public boolean isWildcardDecimal() { return false; }
|
||||
public boolean isWildcardVarchar() { return false; }
|
||||
public boolean isWildcardChar() { return false; }
|
||||
@ -250,7 +238,7 @@ public abstract class Type {
|
||||
}
|
||||
|
||||
public boolean isNumericType() {
|
||||
return isFixedPointType() || isFloatingPointType() || isDecimal() || isDecimalV2();
|
||||
return isFixedPointType() || isFloatingPointType() || isDecimalV2();
|
||||
}
|
||||
|
||||
public boolean isNativeType() {
|
||||
@ -471,8 +459,6 @@ public abstract class Type {
|
||||
return Type.DATETIME;
|
||||
case TIME:
|
||||
return Type.TIME;
|
||||
case DECIMAL:
|
||||
return Type.DECIMAL;
|
||||
case DECIMALV2:
|
||||
return Type.DECIMALV2;
|
||||
case CHAR:
|
||||
@ -527,11 +513,6 @@ public abstract class Type {
|
||||
type = ScalarType.createVarcharType(scalarType.getLen());
|
||||
} else if (scalarType.getType() == TPrimitiveType.HLL) {
|
||||
type = ScalarType.createHllType();
|
||||
} else if (scalarType.getType() == TPrimitiveType.DECIMAL) {
|
||||
Preconditions.checkState(scalarType.isSetPrecision()
|
||||
&& scalarType.isSetPrecision());
|
||||
type = ScalarType.createDecimalType(scalarType.getPrecision(),
|
||||
scalarType.getScale());
|
||||
} else if (scalarType.getType() == TPrimitiveType.DECIMALV2) {
|
||||
Preconditions.checkState(scalarType.isSetPrecision()
|
||||
&& scalarType.isSetPrecision());
|
||||
@ -636,7 +617,6 @@ public abstract class Type {
|
||||
return 7;
|
||||
case DOUBLE:
|
||||
return 15;
|
||||
case DECIMAL:
|
||||
case DECIMALV2:
|
||||
return t.decimalPrecision();
|
||||
default:
|
||||
@ -664,7 +644,6 @@ public abstract class Type {
|
||||
return 7;
|
||||
case DOUBLE:
|
||||
return 15;
|
||||
case DECIMAL:
|
||||
case DECIMALV2:
|
||||
return t.decimalScale();
|
||||
default:
|
||||
@ -694,7 +673,6 @@ public abstract class Type {
|
||||
case BIGINT:
|
||||
case FLOAT:
|
||||
case DOUBLE:
|
||||
case DECIMAL:
|
||||
case DECIMALV2:
|
||||
return 10;
|
||||
default:
|
||||
@ -766,7 +744,6 @@ public abstract class Type {
|
||||
compatibilityMatrix[TINYINT.ordinal()][DATETIME.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[TINYINT.ordinal()][CHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[TINYINT.ordinal()][VARCHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[TINYINT.ordinal()][DECIMAL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[TINYINT.ordinal()][DECIMALV2.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[TINYINT.ordinal()][HLL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[TINYINT.ordinal()][TIME.ordinal()] = PrimitiveType.DOUBLE;
|
||||
@ -783,7 +760,6 @@ public abstract class Type {
|
||||
compatibilityMatrix[SMALLINT.ordinal()][DATETIME.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[SMALLINT.ordinal()][CHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[SMALLINT.ordinal()][VARCHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[SMALLINT.ordinal()][DECIMAL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[SMALLINT.ordinal()][DECIMALV2.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[SMALLINT.ordinal()][HLL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[SMALLINT.ordinal()][TIME.ordinal()] = PrimitiveType.DOUBLE;
|
||||
@ -803,7 +779,6 @@ public abstract class Type {
|
||||
compatibilityMatrix[INT.ordinal()][DATETIME.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[INT.ordinal()][CHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[INT.ordinal()][VARCHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[INT.ordinal()][DECIMAL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[INT.ordinal()][DECIMALV2.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[INT.ordinal()][HLL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[INT.ordinal()][TIME.ordinal()] = PrimitiveType.DOUBLE;
|
||||
@ -824,7 +799,6 @@ public abstract class Type {
|
||||
compatibilityMatrix[BIGINT.ordinal()][DATETIME.ordinal()] = PrimitiveType.BIGINT;
|
||||
compatibilityMatrix[BIGINT.ordinal()][CHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[BIGINT.ordinal()][VARCHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[BIGINT.ordinal()][DECIMAL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[BIGINT.ordinal()][DECIMALV2.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[BIGINT.ordinal()][HLL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[BIGINT.ordinal()][TIME.ordinal()] = PrimitiveType.DOUBLE;
|
||||
@ -837,7 +811,6 @@ public abstract class Type {
|
||||
compatibilityMatrix[LARGEINT.ordinal()][DATETIME.ordinal()] = PrimitiveType.LARGEINT;
|
||||
compatibilityMatrix[LARGEINT.ordinal()][CHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[LARGEINT.ordinal()][VARCHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[LARGEINT.ordinal()][DECIMAL.ordinal()] = PrimitiveType.DECIMAL;
|
||||
compatibilityMatrix[LARGEINT.ordinal()][DECIMALV2.ordinal()] = PrimitiveType.DECIMALV2;
|
||||
compatibilityMatrix[LARGEINT.ordinal()][HLL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[LARGEINT.ordinal()][TIME.ordinal()] = PrimitiveType.DOUBLE;
|
||||
@ -849,7 +822,6 @@ public abstract class Type {
|
||||
compatibilityMatrix[FLOAT.ordinal()][DATETIME.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[FLOAT.ordinal()][CHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[FLOAT.ordinal()][VARCHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[FLOAT.ordinal()][DECIMAL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[FLOAT.ordinal()][DECIMALV2.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[FLOAT.ordinal()][HLL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[FLOAT.ordinal()][TIME.ordinal()] = PrimitiveType.DOUBLE;
|
||||
@ -860,7 +832,6 @@ public abstract class Type {
|
||||
compatibilityMatrix[DOUBLE.ordinal()][DATETIME.ordinal()] = PrimitiveType.DOUBLE ;
|
||||
compatibilityMatrix[DOUBLE.ordinal()][CHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[DOUBLE.ordinal()][VARCHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[DOUBLE.ordinal()][DECIMAL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[DOUBLE.ordinal()][DECIMALV2.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[DOUBLE.ordinal()][HLL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[DOUBLE.ordinal()][TIME.ordinal()] = PrimitiveType.DOUBLE;
|
||||
@ -870,7 +841,6 @@ public abstract class Type {
|
||||
compatibilityMatrix[DATE.ordinal()][DATETIME.ordinal()] = PrimitiveType.DATETIME;
|
||||
compatibilityMatrix[DATE.ordinal()][CHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[DATE.ordinal()][VARCHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[DATE.ordinal()][DECIMAL.ordinal()] = PrimitiveType.DECIMAL;
|
||||
compatibilityMatrix[DATE.ordinal()][DECIMALV2.ordinal()] = PrimitiveType.DECIMALV2;
|
||||
compatibilityMatrix[DATE.ordinal()][HLL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[DATE.ordinal()][TIME.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
@ -879,7 +849,6 @@ public abstract class Type {
|
||||
// DATETIME
|
||||
compatibilityMatrix[DATETIME.ordinal()][CHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[DATETIME.ordinal()][VARCHAR.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[DATETIME.ordinal()][DECIMAL.ordinal()] = PrimitiveType.DECIMAL;
|
||||
compatibilityMatrix[DATETIME.ordinal()][DECIMALV2.ordinal()] = PrimitiveType.DECIMALV2;
|
||||
compatibilityMatrix[DATETIME.ordinal()][HLL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[DATETIME.ordinal()][TIME.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
@ -888,25 +857,17 @@ public abstract class Type {
|
||||
// We can convert some but not all string values to timestamps.
|
||||
// CHAR
|
||||
compatibilityMatrix[CHAR.ordinal()][VARCHAR.ordinal()] = PrimitiveType.VARCHAR;
|
||||
compatibilityMatrix[CHAR.ordinal()][DECIMAL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[CHAR.ordinal()][DECIMALV2.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[CHAR.ordinal()][HLL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[CHAR.ordinal()][TIME.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[CHAR.ordinal()][BITMAP.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
|
||||
// VARCHAR
|
||||
compatibilityMatrix[VARCHAR.ordinal()][DECIMAL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[VARCHAR.ordinal()][DECIMALV2.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[VARCHAR.ordinal()][HLL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[VARCHAR.ordinal()][TIME.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[VARCHAR.ordinal()][BITMAP.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
|
||||
// DECIMAL
|
||||
compatibilityMatrix[DECIMAL.ordinal()][DECIMALV2.ordinal()] = PrimitiveType.DECIMALV2;
|
||||
compatibilityMatrix[DECIMAL.ordinal()][HLL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[DECIMAL.ordinal()][TIME.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[DECIMAL.ordinal()][BITMAP.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
|
||||
// DECIMALV2
|
||||
compatibilityMatrix[DECIMALV2.ordinal()][HLL.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
compatibilityMatrix[DECIMALV2.ordinal()][TIME.ordinal()] = PrimitiveType.INVALID_TYPE;
|
||||
@ -929,7 +890,6 @@ public abstract class Type {
|
||||
if (t1 == PrimitiveType.INVALID_TYPE ||
|
||||
t2 == PrimitiveType.INVALID_TYPE) continue;
|
||||
if (t1 == PrimitiveType.NULL_TYPE || t2 == PrimitiveType.NULL_TYPE) continue;
|
||||
if (t1 == PrimitiveType.DECIMAL || t2 == PrimitiveType.DECIMAL) continue;
|
||||
if (t1 == PrimitiveType.DECIMALV2 || t2 == PrimitiveType.DECIMALV2) continue;
|
||||
if (t1 == PrimitiveType.TIME || t2 == PrimitiveType.TIME) continue;
|
||||
Preconditions.checkNotNull(compatibilityMatrix[i][j]);
|
||||
@ -959,8 +919,6 @@ public abstract class Type {
|
||||
case HLL:
|
||||
case BITMAP:
|
||||
return VARCHAR;
|
||||
case DECIMAL:
|
||||
return DECIMAL;
|
||||
case DECIMALV2:
|
||||
return DECIMALV2;
|
||||
default:
|
||||
@ -990,12 +948,6 @@ public abstract class Type {
|
||||
if (t1ResultType == PrimitiveType.BIGINT && t2ResultType == PrimitiveType.BIGINT) {
|
||||
return getAssignmentCompatibleType(t1, t2, false);
|
||||
}
|
||||
if ((t1ResultType == PrimitiveType.BIGINT
|
||||
|| t1ResultType == PrimitiveType.DECIMAL)
|
||||
&& (t2ResultType == PrimitiveType.BIGINT
|
||||
|| t2ResultType == PrimitiveType.DECIMAL)) {
|
||||
return Type.DECIMAL;
|
||||
}
|
||||
if ((t1ResultType == PrimitiveType.BIGINT
|
||||
|| t1ResultType == PrimitiveType.DECIMALV2)
|
||||
&& (t2ResultType == PrimitiveType.BIGINT
|
||||
@ -1051,8 +1003,6 @@ public abstract class Type {
|
||||
case VARCHAR:
|
||||
case HLL:
|
||||
return Type.DOUBLE;
|
||||
case DECIMAL:
|
||||
return Type.DECIMAL;
|
||||
case DECIMALV2:
|
||||
return Type.DECIMALV2;
|
||||
default:
|
||||
|
||||
@ -68,7 +68,6 @@ public class Util {
|
||||
TYPE_STRING_MAP.put(PrimitiveType.DATETIME, "datetime");
|
||||
TYPE_STRING_MAP.put(PrimitiveType.CHAR, "char(%d)");
|
||||
TYPE_STRING_MAP.put(PrimitiveType.VARCHAR, "varchar(%d)");
|
||||
TYPE_STRING_MAP.put(PrimitiveType.DECIMAL, "decimal(%d,%d)");
|
||||
TYPE_STRING_MAP.put(PrimitiveType.DECIMALV2, "decimal(%d,%d)");
|
||||
TYPE_STRING_MAP.put(PrimitiveType.HLL, "varchar(%d)");
|
||||
TYPE_STRING_MAP.put(PrimitiveType.BOOLEAN, "bool");
|
||||
|
||||
@ -101,7 +101,7 @@ public class TableSchemaAction extends RestBaseAction {
|
||||
Map<String, String> baseInfo = new HashMap<>(2);
|
||||
Type colType = column.getOriginType();
|
||||
PrimitiveType primitiveType = colType.getPrimitiveType();
|
||||
if (primitiveType == PrimitiveType.DECIMALV2 || primitiveType == PrimitiveType.DECIMAL) {
|
||||
if (primitiveType == PrimitiveType.DECIMALV2) {
|
||||
ScalarType scalarType = (ScalarType) colType;
|
||||
baseInfo.put("precision", scalarType.getPrecision() + "");
|
||||
baseInfo.put("scale", scalarType.getScalarScale() + "");
|
||||
|
||||
@ -81,7 +81,7 @@ public class TableSchemaAction extends RestBaseController {
|
||||
Map<String, String> baseInfo = new HashMap<>(2);
|
||||
Type colType = column.getOriginType();
|
||||
PrimitiveType primitiveType = colType.getPrimitiveType();
|
||||
if (primitiveType == PrimitiveType.DECIMALV2 || primitiveType == PrimitiveType.DECIMAL) {
|
||||
if (primitiveType == PrimitiveType.DECIMALV2) {
|
||||
ScalarType scalarType = (ScalarType) colType;
|
||||
baseInfo.put("precision", scalarType.getPrecision() + "");
|
||||
baseInfo.put("scale", scalarType.getScalarScale() + "");
|
||||
|
||||
@ -320,7 +320,7 @@ public class SparkLoadPendingTask extends LoadTask {
|
||||
// decimal precision scale
|
||||
int precision = 0;
|
||||
int scale = 0;
|
||||
if (type.isDecimalType() || type.isDecimalV2Type()) {
|
||||
if (type.isDecimalV2Type()) {
|
||||
precision = column.getPrecision();
|
||||
scale = column.getScale();
|
||||
}
|
||||
|
||||
@ -90,13 +90,11 @@ public class Planner {
|
||||
for (Expr expr : outputExprs) {
|
||||
List<SlotId> slotList = Lists.newArrayList();
|
||||
expr.getIds(null, slotList);
|
||||
if (PrimitiveType.DECIMAL != expr.getType().getPrimitiveType() &&
|
||||
PrimitiveType.DECIMALV2 != expr.getType().getPrimitiveType()) {
|
||||
if (PrimitiveType.DECIMALV2 != expr.getType().getPrimitiveType()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (PrimitiveType.DECIMAL != slotDesc.getType().getPrimitiveType() &&
|
||||
PrimitiveType.DECIMALV2 != slotDesc.getType().getPrimitiveType()) {
|
||||
if (PrimitiveType.DECIMALV2 != slotDesc.getType().getPrimitiveType()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@ -171,7 +171,6 @@ public class PartitionRange {
|
||||
case DATETIME:
|
||||
case FLOAT:
|
||||
case DOUBLE:
|
||||
case DECIMAL:
|
||||
case DECIMALV2:
|
||||
case CHAR:
|
||||
case VARCHAR:
|
||||
|
||||
@ -552,9 +552,6 @@ public class HadoopLoadPendingTask extends LoadPendingTask {
|
||||
case BITMAP:
|
||||
columnType = "BITMAP";
|
||||
break;
|
||||
case DECIMAL:
|
||||
columnType = "DECIMAL";
|
||||
break;
|
||||
case DECIMALV2:
|
||||
columnType = "DECIMAL";
|
||||
break;
|
||||
@ -584,7 +581,7 @@ public class HadoopLoadPendingTask extends LoadPendingTask {
|
||||
}
|
||||
|
||||
// decimal precision scale
|
||||
if (type == PrimitiveType.DECIMAL || type == PrimitiveType.DECIMALV2) {
|
||||
if (type == PrimitiveType.DECIMALV2) {
|
||||
dppColumn.put("precision", column.getPrecision());
|
||||
dppColumn.put("scale", column.getScale());
|
||||
}
|
||||
|
||||
@ -34,7 +34,7 @@ public class DecimalLiteralTest {
|
||||
BigDecimal decimal = new BigDecimal("-123456789123456789.123456789");
|
||||
DecimalLiteral literal = new DecimalLiteral(decimal);
|
||||
|
||||
ByteBuffer buffer = literal.getHashValue(PrimitiveType.DECIMAL);
|
||||
ByteBuffer buffer = literal.getHashValue(PrimitiveType.DECIMALV2);
|
||||
long longValue = buffer.getLong();
|
||||
int fracValue = buffer.getInt();
|
||||
System.out.println("long: " + longValue);
|
||||
@ -44,7 +44,6 @@ public class DecimalLiteralTest {
|
||||
|
||||
// if DecimalLiteral need to cast to Decimal and Decimalv2, need to cast
|
||||
// to themselves
|
||||
Assert.assertEquals(literal, literal.uncheckedCastTo(Type.DECIMAL));
|
||||
Assert.assertEquals(literal, literal.uncheckedCastTo(Type.DECIMALV2));
|
||||
|
||||
Assert.assertEquals(1, literal.compareLiteral(new NullLiteral()));
|
||||
|
||||
@ -153,7 +153,7 @@ public class CatalogMocker {
|
||||
Column k5 = new Column("k5", ScalarType.createType(PrimitiveType.LARGEINT), true, null, "", "key5");
|
||||
Column k6 = new Column("k6", ScalarType.createType(PrimitiveType.DATE), true, null, "", "key6");
|
||||
Column k7 = new Column("k7", ScalarType.createType(PrimitiveType.DATETIME), true, null, "", "key7");
|
||||
Column k8 = new Column("k8", ScalarType.createDecimalType(10, 3), true, null, "", "key8");
|
||||
Column k8 = new Column("k8", ScalarType.createDecimalV2Type(10, 3), true, null, "", "key8");
|
||||
k1.setIsKey(true);
|
||||
k2.setIsKey(true);
|
||||
k3.setIsKey(true);
|
||||
|
||||
@ -96,7 +96,7 @@ public class ColumnTypeTest {
|
||||
TypeDef type = TypeDef.createDecimal(12, 5);
|
||||
type.analyze(null);
|
||||
Assert.assertEquals("decimal(12, 5)", type.toString());
|
||||
Assert.assertEquals(PrimitiveType.DECIMAL, type.getType().getPrimitiveType());
|
||||
Assert.assertEquals(PrimitiveType.DECIMALV2, type.getType().getPrimitiveType());
|
||||
Assert.assertEquals(12, ((ScalarType) type.getType()).getScalarPrecision());
|
||||
Assert.assertEquals(5, ((ScalarType) type.getType()).getScalarScale());
|
||||
|
||||
@ -146,7 +146,7 @@ public class ColumnTypeTest {
|
||||
ScalarType type2 = ScalarType.createType(PrimitiveType.BIGINT);
|
||||
ColumnType.write(dos, type2);
|
||||
|
||||
ScalarType type3 = ScalarType.createDecimalType(1, 1);
|
||||
ScalarType type3 = ScalarType.createDecimalV2Type(1, 1);
|
||||
ColumnType.write(dos, type3);
|
||||
|
||||
ScalarType type4 = ScalarType.createDecimalV2Type(1, 1);
|
||||
|
||||
@ -35,12 +35,12 @@ public class FunctionSetTest {
|
||||
|
||||
@Test
|
||||
public void testGetLagFunction() {
|
||||
Type[] argTypes1 = {ScalarType.DECIMAL, ScalarType.TINYINT, ScalarType.TINYINT};
|
||||
Type[] argTypes1 = {ScalarType.DECIMALV2, ScalarType.TINYINT, ScalarType.TINYINT};
|
||||
Function lagDesc1 = new Function(new FunctionName("lag"), argTypes1, (Type) ScalarType.INVALID, false);
|
||||
Function newFunction = functionSet.getFunction(lagDesc1, Function.CompareMode.IS_SUPERTYPE_OF);
|
||||
Type[] newArgTypes = newFunction.getArgs();
|
||||
Assert.assertTrue(newArgTypes[0].matchesType(newArgTypes[2]));
|
||||
Assert.assertTrue(newArgTypes[0].matchesType(ScalarType.DECIMAL));
|
||||
Assert.assertTrue(newArgTypes[0].matchesType(ScalarType.DECIMALV2));
|
||||
|
||||
Type[] argTypes2 = {ScalarType.VARCHAR, ScalarType.TINYINT, ScalarType.TINYINT};
|
||||
Function lagDesc2 = new Function(new FunctionName("lag"), argTypes2, (Type) ScalarType.INVALID, false);
|
||||
|
||||
Reference in New Issue
Block a user