本文整理汇总了Java中org.apache.tajo.engine.planner.LogicalPlan.newPID方法的典型用法代码示例。如果您正苦于以下问题:Java LogicalPlan.newPID方法的具体用法?Java LogicalPlan.newPID怎么用?Java LogicalPlan.newPID使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.tajo.engine.planner.LogicalPlan
的用法示例。
在下文中一共展示了LogicalPlan.newPID方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: indexEval
import org.apache.tajo.engine.planner.LogicalPlan; //导入方法依赖的package包/类
public static IndexScanNode indexEval(LogicalPlan plan, ScanNode scanNode,
Iterator<Entry<String, String>> iter ) {
EvalNode qual = scanNode.getQual();
Gson gson = CoreGsonHelper.getInstance();
FieldAndValueFinder nodeFinder = new FieldAndValueFinder();
qual.preOrder(nodeFinder);
LinkedList<EvalNode> nodeList = nodeFinder.getNodeList();
int maxSize = Integer.MIN_VALUE;
SortSpec[] maxIndex = null;
String json;
while(iter.hasNext()) {
Entry<String , String> entry = iter.next();
json = entry.getValue();
SortSpec[] sortKey = gson.fromJson(json, SortSpec[].class);
if(sortKey.length > nodeList.size()) {
/* If the number of the sort key is greater than where condition,
* this index cannot be used
* */
continue;
} else {
boolean[] equal = new boolean[sortKey.length];
for(int i = 0 ; i < sortKey.length ; i ++) {
for(int j = 0 ; j < nodeList.size() ; j ++) {
Column col = ((FieldEval)(nodeList.get(j).getLeftExpr())).getColumnRef();
if(col.equals(sortKey[i].getSortKey())) {
equal[i] = true;
}
}
}
boolean chk = true;
for(int i = 0 ; i < equal.length ; i ++) {
chk = chk && equal[i];
}
if(chk) {
if(maxSize < sortKey.length) {
maxSize = sortKey.length;
maxIndex = sortKey;
}
}
}
}
if(maxIndex == null) {
return null;
} else {
Schema keySchema = new Schema();
for(int i = 0 ; i < maxIndex.length ; i ++ ) {
keySchema.addColumn(maxIndex[i].getSortKey());
}
Datum[] datum = new Datum[nodeList.size()];
for(int i = 0 ; i < nodeList.size() ; i ++ ) {
datum[i] = ((ConstEval)(nodeList.get(i).getRightExpr())).getValue();
}
return new IndexScanNode(plan.newPID(), scanNode, keySchema , datum , maxIndex);
}
}