本文整理汇总了Java中com.taobao.tddl.executor.utils.ExecUtils类的典型用法代码示例。如果您正苦于以下问题:Java ExecUtils类的具体用法?Java ExecUtils怎么用?Java ExecUtils使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
ExecUtils类属于com.taobao.tddl.executor.utils包,在下文中一共展示了ExecUtils类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: serverReduce
import com.taobao.tddl.executor.utils.ExecUtils; //导入依赖的package包/类
/**
* 外部执行器传递ResultSet中的row记录,进行function的reduce计算
*
* @param kvPair
* @throws Exception
*/
public void serverReduce(IRowSet kvPair, ExecutionContext ec) throws TddlRuntimeException {
// 函数的input参数
List<Object> reduceArgs = this.getReduceArgs(function);
Object[] inputArg = new Object[reduceArgs.size()];
// 目前认为所有scalar函数可下推
for (int i = 0; i < reduceArgs.size(); i++) {
String name = reduceArgs.get(i).toString();
Object val = ExecUtils.getValueByTableAndName(kvPair,
this.function.getTableName(),
name,
this.function.getAlias());
inputArg[i] = val;
}
serverReduce(inputArg, ec);
}
示例2: compute
import com.taobao.tddl.executor.utils.ExecUtils; //导入依赖的package包/类
@Override
public Object compute(Object[] args, ExecutionContext ec) {
DataType type = getReturnType();
if (ExecUtils.isNull(args[0])) {
return null;
}
String d = DataType.StringType.convertFrom(args[0]);
// get bytes from string
byte bytes[] = d.getBytes();
Checksum checksum = new CRC32();
// update the current checksum with the specified array of bytes
checksum.update(bytes, 0, bytes.length);
// get the current checksum value
return type.convertFrom(checksum.getValue());
}
示例3: findOrderByInKey
import com.taobao.tddl.executor.utils.ExecUtils; //导入依赖的package包/类
private boolean findOrderByInKey(List<IOrderBy> orderBys, List<ColumnMeta> columns, ColumnMeta cm,
Set<IOrderBy> hashOrderBys) {
for (IOrderBy ob : orderBys) {
ISelectable iSelectable = ob.getColumn();
String orderByTable = iSelectable.getTableName();
orderByTable = ExecUtils.getLogicTableName(orderByTable);
if (cm != null && TStringUtil.equals(ExecUtils.getLogicTableName(cm.getTableName()), orderByTable)) {
if (TStringUtil.equals(cm.getName(), iSelectable.getColumnName())) {
ColumnMeta cm2 = new ColumnMeta(cm.getTableName(),
cm.getTableName() + "_ANDOR_TABLENAME_" + cm.getName(),
cm.getDataType(),
cm.getAlias(),
cm.isNullable());
// 列名与order by Match.放到key里
columns.add(cm2);
hashOrderBys.add(ob);
return true;
}
}
}
return false;
}
示例4: compute
import com.taobao.tddl.executor.utils.ExecUtils; //导入依赖的package包/类
@Override
public Object compute(Object[] args, ExecutionContext ec) {
for (Object arg : args) {
if (ExecUtils.isNull(arg)) {
return null;
}
}
java.sql.Timestamp timestamp = DataType.TimestampType.convertFrom(args[2]);
Calendar cal = Calendar.getInstance();
cal.setTime(timestamp);
IntervalType date = Interval.paseIntervalDate(args[1], args[0]);
date.process(cal, 1);
DataType type = getReturnType();
return type.convertFrom(cal.getTime());
}
示例5: compute
import com.taobao.tddl.executor.utils.ExecUtils; //导入依赖的package包/类
@Override
public Object compute(Object[] args, ExecutionContext ec) {
for (Object arg : args) {
if (ExecUtils.isNull(arg)) {
return null;
}
}
String n = DataType.StringType.convertFrom(args[0]);
Integer f = DataType.IntegerType.convertFrom(args[1]);
Integer t = DataType.IntegerType.convertFrom(args[2]);
Object result;
Long d = Long.valueOf(n, f);
if (t < 0) {
result = Long.toString(d, Math.abs(t)).toUpperCase();
if (d >= 0) {
result = "-" + result;
}
} else {
result = Long.toString(d, t).toUpperCase();
}
return result;
}
示例6: findOrderByInKey
import com.taobao.tddl.executor.utils.ExecUtils; //导入依赖的package包/类
private boolean findOrderByInKey(List<IOrderBy> orderBys, List<ColumnMeta> columns, ColumnMeta cm,
Set<IOrderBy> hashOrderBys) {
for (IOrderBy ob : orderBys) {
ISelectable iSelectable = ob.getColumn();
String orderByTable = iSelectable.getTableName();
orderByTable = ExecUtils.getLogicTableName(orderByTable);
if (cm != null && TStringUtil.equals(ExecUtils.getLogicTableName(cm.getTableName()), orderByTable)) {
if (TStringUtil.equals(cm.getName(), iSelectable.getColumnName())) {
ColumnMeta cm2 = new ColumnMeta(cm.getTableName(),
cm.getTableName() + "." + cm.getName(),
cm.getDataType(),
cm.getAlias(),
cm.isNullable());
// 列名与order by Match.放到key里
columns.add(cm2);
hashOrderBys.add(ob);
return true;
}
}
}
return false;
}
示例7: compute
import com.taobao.tddl.executor.utils.ExecUtils; //导入依赖的package包/类
@Override
public Object compute(Object[] args, ExecutionContext ec) {
if (ExecUtils.isNull(args[0])) {
return null;
} else if (ExecUtils.isNull(args[1])) {
return args[0];
} else {
DataType type = getReturnType();
Object t1 = type.convertFrom(args[0]);
Object t2 = type.convertFrom(args[1]);
if (t1.equals(t2)) {
return null;
} else {
return t1;
}
}
}
示例8: blockNestedLoopJoin
import com.taobao.tddl.executor.utils.ExecUtils; //导入依赖的package包/类
private void blockNestedLoopJoin(List<CloneableRecord> leftJoinOnColumnCache, IColumn rightColumn,
IValueFilterCursor vfc, Map<CloneableRecord, DuplicateKVPair> records)
throws TddlException {
IRowSet kv = null;
while ((kv = vfc.next()) != null) {
kv = ExecUtils.fromIRowSetToArrayRowSet(kv);
Object rightValue = ExecUtils.getValueByIColumn(kv, rightColumn);
for (CloneableRecord record : leftJoinOnColumnCache) {
Comparable comp = (Comparable) record.getMap().values().iterator().next();
if (rightValue.equals(comp)) {
buildDuplicate(records, kv, record);
break;
}
}
}
}
示例9: compute
import com.taobao.tddl.executor.utils.ExecUtils; //导入依赖的package包/类
@Override
public Object compute(Object[] args, ExecutionContext ec) {
Object arg = args[0];
if (ExecUtils.isNull(arg)) {
return null;
}
BigInteger longlong = DataType.BigIntegerType.convertFrom(arg);
if (longlong == null) {
return "0";
}
return longlong.toString(2);
}
示例10: compute
import com.taobao.tddl.executor.utils.ExecUtils; //导入依赖的package包/类
@Override
public Object compute(Object[] args, ExecutionContext ec) {
if (ExecUtils.isNull(args[0])) {
return null;
}
String str = DataType.StringType.convertFrom(args[0]);
String delim = DataType.StringType.convertFrom(args[1]);
Integer count = DataType.IntegerType.convertFrom(args[2]);
if (count == 0) {
return "";
} else if (count > 0) {
Integer len = TStringUtil.ordinalIndexOf(str, delim, count);
if (len == -1) {
return str;
}
return TStringUtil.substring(str, 0, len);
} else {
count = -count;
Integer pos = TStringUtil.lastOrdinalIndexOf(str, delim, count);
return TStringUtil.substring(str, pos + 1);
}
}
示例11: initSchema
import com.taobao.tddl.executor.utils.ExecUtils; //导入依赖的package包/类
private void initSchema(IRowSet firstRowSet, IFilter lf) {
if (schemaInited) {
return;
}
schemaInited = true;
List<ColumnMeta> columnMetas = to.getParentCursorMeta().getColumns();
List<ISelectable> iColumns = ExecUtils.getIColumnsWithISelectable(columnMetas.toArray(new ColumnMeta[0]));
toComparator = ExecUtils.getComp(iColumns,
iColumns,
to.getParentCursorMeta(),
firstRowSet.getParentCursorMeta());
fromComparator = ExecUtils.getComp(iColumns,
iColumns,
from.getParentCursorMeta(),
firstRowSet.getParentCursorMeta());
// init(rangeFilters);
}
示例12: BlockNestedtLoopCursor
import com.taobao.tddl.executor.utils.ExecUtils; //导入依赖的package包/类
public BlockNestedtLoopCursor(ISchematicCursor leftCursor, ISchematicCursor rightCursor, List leftColumns,
List rightColumns, List columns, ICursorFactory cursorFactory, IJoin join,
ExecutionContext executionContext, List leftRetColumns, List rightRetColumns)
throws Exception{
super(leftCursor, rightCursor, leftColumns, rightColumns, columns, leftRetColumns, rightRetColumns, join);
this.cursorFactory = cursorFactory;
this.leftCodec = CodecFactory.getInstance(CodecFactory.FIXED_LENGTH)
.getCodec(ExecUtils.getColumnMetas(rightColumns));
this.left_key = leftCodec.newEmptyRecord();
this.executionContext = executionContext;
// rightCursorMeta =
// CursorMetaImp.buildNew(ExecUtils.convertISelectablesToColumnMeta(rightRetColumns,
// join.getRightNode().getAlias(),
// join.isSubQuery()));
this.join = join;
}
示例13: compute
import com.taobao.tddl.executor.utils.ExecUtils; //导入依赖的package包/类
@Override
public Object compute(Object[] args, ExecutionContext ec) {
if (ExecUtils.isNull(args[0])) {
return null;
}
Integer index = DataType.IntegerType.convertFrom(args[0]);
if (index < 1 || index > args.length - 1) {
return null;
}
Object resEle = args[index];
if (ExecUtils.isNull(resEle)) {
return null;
}
return DataType.StringType.convertFrom(resEle);
}
示例14: compute
import com.taobao.tddl.executor.utils.ExecUtils; //导入依赖的package包/类
@Override
public Object compute(Object[] args, ExecutionContext ec) {
for (Object arg : args) {
if (ExecUtils.isNull(arg)) {
return null;
}
}
String substr = DataType.StringType.convertFrom(args[0]);
String str = DataType.StringType.convertFrom(args[1]);
Integer pos = null;
if (args.length == 3) {
pos = DataType.IntegerType.convertFrom(args[2]);
}
if (pos == null) {
return TStringUtil.indexOf(str, substr) + 1;
} else {
return TStringUtil.indexOf(str, substr, pos + 1) + 1;
}
}
示例15: compute
import com.taobao.tddl.executor.utils.ExecUtils; //导入依赖的package包/类
@Override
public Object compute(Object[] args, ExecutionContext ec) {
Object arg = args[0];
if (ExecUtils.isNull(arg)) {
return null;
}
String str = DataType.StringType.convertFrom(arg);
if (TStringUtil.isEmpty(str)) {
return 0;
}
return str.length();
}