本文整理匯總了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;
}