本文整理汇总了Java中com.taobao.tddl.optimizer.core.datatype.DataTypeUtil类的典型用法代码示例。如果您正苦于以下问题:Java DataTypeUtil类的具体用法?Java DataTypeUtil怎么用?Java DataTypeUtil使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
DataTypeUtil类属于com.taobao.tddl.optimizer.core.datatype包,在下文中一共展示了DataTypeUtil类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: doMin
import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //导入依赖的package包/类
private void doMin(Object[] args) {
Object o = args[0];
DataType type = this.getReturnType();
if (type == null) {
if (o != null) {
type = DataTypeUtil.getTypeOfObject(o);
}
}
if (o != null) {
if (result == null) {
result = o;
}
if (type.compare(o, result) < 0) {
result = o;
}
}
}
示例2: doMax
import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //导入依赖的package包/类
private void doMax(Object[] args) {
Object o = args[0];
DataType type = this.getReturnType();
if (type == null) {
if (o != null) {
type = DataTypeUtil.getTypeOfObject(o);
}
}
if (o != null) {
if (result == null) {
result = o;
}
if (type.compare(o, result) > 0) {
result = o;
}
}
}
示例3: compute
import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //导入依赖的package包/类
@Override
public Object compute(Object[] args, ExecutionContext ec) {
if (ExecUtils.isNull(args[0])) {
return null;
}
DataType type = DataTypeUtil.getTypeOfObject(args[0]);
if (type == DataType.StringType) {
String strVal = DataType.StringType.convertFrom(args[0]);
StringBuilder sb = new StringBuilder();
for (Byte b : strVal.getBytes()) {
sb.append(Integer.toHexString(b & 0xff));
}
return sb.toString();
} else {
BigInteger intVal = DataType.BigIntegerType.convertFrom(args[0]);
return intVal.toString(16).toUpperCase();
}
}
示例4: comp
import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //导入依赖的package包/类
public static int comp(Object c1, Object c2, IOrderBy order) {
DataType type = order.getColumn().getDataType();
if (type == null) {
type = DataTypeUtil.getTypeOfObject(c1);
}
int n = type.compare(c1, c2);
if (n == 0) {
return n;
}
boolean isAsc = order.getDirection();
if (isAsc) {
return n;
} else {
return n < 0 ? 1 : -1;
}
}
示例5: convertType
import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //导入依赖的package包/类
public static Object convertType(Object value, DataType type) {
if (value == null) {
return null;
}
if (type == null || value instanceof BindVal || value instanceof IFunction || value instanceof NullValue) {
return value;
}
if (DataTypeUtil.isDateType(type)) {
// 针对时间类型,不做转换
// 针对where date < '2014-05-23 00:00:01',如果按照date类型进行转换,会丢失秒精度,导致结果出错
return value;
} else {
return type.convertFrom(value);
}
}
示例6: getMapReturnType
import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //导入依赖的package包/类
@Override
public DataType getMapReturnType() {
Object[] args = function.getArgs().toArray();
DataType type = null;
if (args[0] instanceof ISelectable) {
type = ((ISelectable) args[0]).getDataType();
}
if (type == null) {
type = DataTypeUtil.getTypeOfObject(args[0]);
}
if (type == DataType.BigIntegerType) {
// 如果是大整数,返回bigDecimal
return DataType.BigDecimalType;
} else {
// 尽可能都返回为BigDecimalType,double类型容易出现精度问题,会和mysql出现误差
// [zhuoxue.yll, 2516885.8000]
// [zhuoxue.yll, 2516885.799999999813735485076904296875]
// return DataType.DoubleType;
return DataType.BigDecimalType;
}
}
示例7: getSumType
import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //导入依赖的package包/类
public DataType getSumType() {
Object[] args = function.getArgs().toArray();
DataType type = null;
if (args[0] instanceof ISelectable) {
type = ((ISelectable) args[0]).getDataType();
}
if (type == null) {
type = DataTypeUtil.getTypeOfObject(args[0]);
}
if (type == DataType.IntegerType || type == DataType.ShortType) {
return DataType.LongType;
} else {
return type;
}
}
示例8: getMapReturnType
import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //导入依赖的package包/类
@Override
public DataType getMapReturnType() {
Object[] args = function.getArgs().toArray();
DataType type = null;
if (args[0] instanceof ISelectable) {
type = ((ISelectable) args[0]).getDataType();
}
if (type == null) {
type = DataTypeUtil.getTypeOfObject(args[0]);
}
if (type == DataType.IntegerType || type == DataType.ShortType) {
return DataType.LongType;
} else {
return type;
}
}
示例9: getReturnType
import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //导入依赖的package包/类
@Override
public DataType getReturnType() {
Object[] args = function.getArgs().toArray();
DataType type = null;
if (args[0] instanceof ISelectable) {
type = ((ISelectable) args[0]).getDataType();
}
if (type == null) {
type = DataTypeUtil.getTypeOfObject(args[0]);
}
if (type == DataType.BigIntegerType || type == DataType.BigDecimalType) {
return DataType.BigIntegerType;
} else {
return DataType.LongType;
}
}
示例10: getReturnType
import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //导入依赖的package包/类
@Override
public DataType getReturnType() {
Object[] args = function.getArgs().toArray();
DataType type = null;
if (args[0] instanceof ISelectable) {
type = ((ISelectable) args[0]).getDataType();
}
if (type == null) {
type = DataTypeUtil.getTypeOfObject(args[0]);
}
if (type == DataType.BooleanType) {
return DataType.BooleanType;
} else {
return DataType.IntegerType;
}
}
示例11: getReturnType
import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //导入依赖的package包/类
@Override
public DataType getReturnType() {
Object[] args = function.getArgs().toArray();
DataType type = null;
if (args[0] instanceof ISelectable) {
type = ((ISelectable) args[0]).getDataType();
}
if (type == null) {
type = DataTypeUtil.getTypeOfObject(args[0]);
}
if (type == DataType.BigIntegerType) {
// 如果是大整数,返回bigDecimal
return DataType.BigDecimalType;
} else {
// 尽可能都返回为BigDecimalType,double类型容易出现精度问题,会和mysql出现误差
// [zhuoxue.yll, 2516885.8000]
// [zhuoxue.yll, 2516885.799999999813735485076904296875]
// return DataType.DoubleType;
return DataType.BigDecimalType;
}
}
示例12: getReturnType
import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //导入依赖的package包/类
@Override
public DataType getReturnType() {
Object[] args = function.getArgs().toArray();
DataType type = null;
if (args[0] instanceof ISelectable) {
type = ((ISelectable) args[0]).getDataType();
}
if (type == null) {
type = DataTypeUtil.getTypeOfObject(args[0]);
}
if (type == DataType.IntegerType || type == DataType.ShortType) {
return DataType.LongType;
} else {
return type;
}
}
示例13: comp
import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //导入依赖的package包/类
public static int comp(Comparable c1, Comparable c2, IOrderBy order) {
DataType type = order.getColumn().getDataType();
if (type == null) {
type = DataTypeUtil.getTypeOfObject(c1);
}
int n = type.compare(c1, c2);
if (n == 0) {
return n;
}
boolean isAsc = order.getDirection();
if (isAsc) {
return n;
} else {
return n < 0 ? 1 : -1;
}
}
示例14: getRange
import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //导入依赖的package包/类
/**
* 构造Range对象
*
* @param f
* @return
*/
protected Range getRange(IBooleanFilter f) {
DataType type = getColumn(f).getDataType();
if (type == null) {
type = DataTypeUtil.getTypeOfObject(f.getValue());
}
switch (f.getOperation()) {
case EQ:
return new Range(null, type, getValue(f), getValue(f));
case GT:
return new Range(null, type, getValue(f), false, null, true);
case GT_EQ:
return new Range(null, type, getValue(f), true, null, true);
case LT:
return new Range(null, type, null, true, getValue(f), false);
case LT_EQ:
return new Range(null, type, null, true, getValue(f), true);
default:
return null;
}
}
示例15: getArgType
import com.taobao.tddl.optimizer.core.datatype.DataTypeUtil; //导入依赖的package包/类
/**
* 返回对应类型的DataType
*/
protected DataType getArgType(Object arg) {
DataType type = null;
if (arg instanceof ISelectable) {
type = ((ISelectable) arg).getDataType();
}
if (type == null) {
type = DataTypeUtil.getTypeOfObject(arg);
}
return type;
}