private WindowFunctionInfo createWindowFunctionInfo(WindowFunction wf) { WindowFunctionInfo wfi = new WindowFunctionInfo(); wfi.function = wf; //collect the agg expressions for (Expression e : wf.getFunction().getArgs()) { GroupingNode.getIndex(e, expressionIndexes); } if (wf.getFunction().getOrderBy() != null) { for (OrderByItem item : wf.getFunction().getOrderBy().getOrderByItems()) { GroupingNode.getIndex(item.getSymbol(), expressionIndexes); } } if (wf.getFunction().getCondition() != null) { GroupingNode.getIndex(wf.getFunction().getCondition(), expressionIndexes); } return wfi; }
private WindowFunctionInfo createWindowFunctionInfo(WindowFunction wf) { WindowFunctionInfo wfi = new WindowFunctionInfo(); wfi.function = wf; //collect the agg expressions for (Expression e : wf.getFunction().getArgs()) { GroupingNode.getIndex(e, expressionIndexes); } if (wf.getFunction().getOrderBy() != null) { for (OrderByItem item : wf.getFunction().getOrderBy().getOrderByItems()) { GroupingNode.getIndex(item.getSymbol(), expressionIndexes); } } if (wf.getFunction().getCondition() != null) { GroupingNode.getIndex(wf.getFunction().getCondition(), expressionIndexes); } return wfi; }
if (ws.getPartition() != null) { for (Expression ex1 : ws.getPartition()) { Integer index = GroupingNode.getIndex(ex1, expressionIndexes); wsi.groupIndexes.add(index); wsi.orderType.add(OrderBy.ASC); for (OrderByItem item : ws.getOrderBy().getOrderByItems()) { Expression ex1 = SymbolMap.getExpression(item.getSymbol()); Integer index = GroupingNode.getIndex(ex1, expressionIndexes); wsi.sortIndexes.add(index); wsi.orderType.add(item.isAscending()); GroupingNode.getIndex(e, expressionIndexes); GroupingNode.getIndex(item.getSymbol(), expressionIndexes); GroupingNode.getIndex(wf.getFunction().getCondition(), expressionIndexes); int index = GroupingNode.getIndex(ex, expressionIndexes); passThrough.add(new int[] {i, index});
int index = GroupingNode.getIndex(ex, expressionIndexes); passThrough.add(new int[] {i, index});
int index = GroupingNode.getIndex(ex, expressionIndexes); passThrough.add(new int[] {i, index});
for (int j = 0; j < args.length; j++) { inputTypes[j] = args[j].getType(); argIndexes[j] = getIndex(args[j], expressionIndexes); for (ListIterator<OrderByItem> iterator = aggSymbol.getOrderBy().getOrderByItems().listIterator(); iterator.hasNext();) { OrderByItem item = iterator.next(); argIndexes[args.length + iterator.previousIndex()] = getIndex(item.getSymbol(), expressionIndexes); ElementSymbol element = new ElementSymbol(String.valueOf(iterator.previousIndex())); element.setType(item.getSymbol().getType()); result.setConditionIndex(getIndex(aggSymbol.getCondition(), expressionIndexes));
for (int j = 0; j < args.length; j++) { inputTypes[j] = args[j].getType(); argIndexes[j] = getIndex(args[j], expressionIndexes); for (ListIterator<OrderByItem> iterator = aggSymbol.getOrderBy().getOrderByItems().listIterator(); iterator.hasNext();) { OrderByItem item = iterator.next(); argIndexes[args.length + iterator.previousIndex()] = getIndex(item.getSymbol(), expressionIndexes); ElementSymbol element = new ElementSymbol(String.valueOf(iterator.previousIndex())); element.setType(item.getSymbol().getType()); result.setConditionIndex(getIndex(aggSymbol.getCondition(), expressionIndexes));
for (int j = 0; j < args.length; j++) { inputTypes[j] = args[j].getType(); argIndexes[j] = getIndex(args[j], expressionIndexes); for (ListIterator<OrderByItem> iterator = aggSymbol.getOrderBy().getOrderByItems().listIterator(); iterator.hasNext();) { OrderByItem item = iterator.next(); argIndexes[args.length + iterator.previousIndex()] = getIndex(item.getSymbol(), expressionIndexes); ElementSymbol element = new ElementSymbol(String.valueOf(iterator.previousIndex())); element.setType(item.getSymbol().getType()); result.setConditionIndex(getIndex(aggSymbol.getCondition(), expressionIndexes));