/** * @param functions * @param specIndex * @param rowValues * @return */ private List<AggregateFunction> initializeAccumulators(List<WindowFunctionInfo> functions, int specIndex) { List<AggregateFunction> aggs = new ArrayList<AggregateFunction>(functions.size()); if (functions.isEmpty()) { return aggs; } List<ElementSymbol> elements = new ArrayList<ElementSymbol>(functions.size()); ElementSymbol key = new ElementSymbol("key"); //$NON-NLS-1$ key.setType(DataTypeManager.DefaultDataClasses.INTEGER); elements.add(key); for (WindowFunctionInfo wfi : functions) { AggregateFunction aggregateFunction = GroupingNode.initAccumulator(wfi.function.getFunction(), this, expressionIndexes); aggs.add(aggregateFunction); Class<?> outputType = aggregateFunction.getOutputType(wfi.function.getFunction()); ElementSymbol value = new ElementSymbol("val"); //$NON-NLS-1$ value.setType(outputType); elements.add(value); } valueMapping[specIndex] = this.getBufferManager().createSTree(elements, this.getConnectionID(), 1); return aggs; }
/** * @param functions * @param specIndex * @param rowValues * @return */ private List<AggregateFunction> initializeAccumulators(List<WindowFunctionInfo> functions, int specIndex) { List<AggregateFunction> aggs = new ArrayList<AggregateFunction>(functions.size()); if (functions.isEmpty()) { return aggs; } List<ElementSymbol> elements = new ArrayList<ElementSymbol>(functions.size()); ElementSymbol key = new ElementSymbol("key"); //$NON-NLS-1$ key.setType(DataTypeManager.DefaultDataClasses.INTEGER); elements.add(key); for (WindowFunctionInfo wfi : functions) { AggregateFunction aggregateFunction = GroupingNode.initAccumulator(wfi.function.getFunction(), this, expressionIndexes); aggs.add(aggregateFunction); Class<?> outputType = aggregateFunction.getOutputType(wfi.function.getFunction()); ElementSymbol value = new ElementSymbol("val"); //$NON-NLS-1$ value.setType(outputType); elements.add(value); } valueMapping[specIndex] = this.getBufferManager().createSTree(elements, this.getConnectionID(), 1); return aggs; }
valueMapping[specIndex] = this.getBufferManager().createSTree(elements, this.getConnectionID(), 1); } else { rowValueMapping[specIndex] = this.getBufferManager().createSTree(elements, this.getConnectionID(), 1);
value.setType(DataTypeManager.DefaultDataClasses.INTEGER); List<ElementSymbol> elements = Arrays.asList(key, value); partitionMapping[specIndex] = this.getBufferManager().createSTree(elements, this.getConnectionID(), 1); SortUtility su = new SortUtility(null, Mode.SORT, this.getBufferManager(), this.getConnectionID(), tb.getSchema(), info.orderType, info.nullOrderings, sortKeys); su.setWorkingBuffer(tb); su.setNonBlocking(true);
es.setType(DataTypeManager.DefaultDataClasses.INTEGER); schema.add(es); tb = this.getBufferManager().createTupleBuffer(schema, this.getConnectionID(), TupleSourceType.PROCESSOR);
es.setType(DataTypeManager.DefaultDataClasses.INTEGER); schema.add(es); tb = this.getBufferManager().createTupleBuffer(schema, this.getConnectionID(), TupleSourceType.PROCESSOR);
es.setType(DataTypeManager.DefaultDataClasses.INTEGER); schema.add(es); tb = this.getBufferManager().createTupleBuffer(schema, this.getConnectionID(), TupleSourceType.PROCESSOR);
value.setType(DataTypeManager.DefaultDataClasses.INTEGER); List<ElementSymbol> elements = Arrays.asList(key, value); partitionMapping[specIndex] = this.getBufferManager().createSTree(elements, this.getConnectionID(), 1); SortUtility su = new SortUtility(null, Mode.SORT, this.getBufferManager(), this.getConnectionID(), tb.getSchema(), info.orderType, info.nullOrderings, sortKeys); su.setWorkingBuffer(tb); su.setNonBlocking(true);
value.setType(DataTypeManager.DefaultDataClasses.INTEGER); List<ElementSymbol> elements = Arrays.asList(key, value); partitionMapping[specIndex] = this.getBufferManager().createSTree(elements, this.getConnectionID(), 1); SortUtility su = new SortUtility(null, Mode.SORT, this.getBufferManager(), this.getConnectionID(), tb.getSchema(), info.orderType, info.nullOrderings, sortKeys); su.setWorkingBuffer(tb); su.setNonBlocking(true);