public void sortValueSet(boolean direction, NullOrder nullOrder) { int size = getValueSet().get(0).size(); int[] sortOn = new int[size]; for (int i = 0; i <sortOn.length; i++) { sortOn[i] = i; } Collections.sort(getValueSet(), new ListNestedSortComparator(sortOn, direction).defaultNullOrder(nullOrder)); }
public void sortValueSet(boolean direction, NullOrder nullOrder) { int size = getValueSet().get(0).size(); int[] sortOn = new int[size]; for (int i = 0; i <sortOn.length; i++) { sortOn[i] = i; } Collections.sort(getValueSet(), new ListNestedSortComparator(sortOn, direction).defaultNullOrder(nullOrder)); }
public void sortValueSet(boolean direction, NullOrder nullOrder) { int size = getValueSet().get(0).size(); int[] sortOn = new int[size]; for (int i = 0; i <sortOn.length; i++) { sortOn[i] = i; } Collections.sort(getValueSet(), new ListNestedSortComparator(sortOn, direction).defaultNullOrder(nullOrder)); }
public STree createSTree(final List<? extends Expression> elements, String groupName, int keyLength) { Long newID = this.tsId.getAndIncrement(); int[] lobIndexes = LobManager.getLobIndexes(elements); Class<?>[] types = getTypeClasses(elements); BatchManagerImpl bm = createBatchManager(newID, types); LobManager lobManager = null; if (lobIndexes != null) { lobManager = new LobManager(lobIndexes, null); //persistence is not expected yet - later we might utilize storage for out-of-line lob values bm.setLobManager(lobManager); } BatchManager keyManager = createBatchManager(this.tsId.getAndIncrement(), Arrays.copyOf(types, keyLength)); int[] compareIndexes = new int[keyLength]; for (int i = 1; i < compareIndexes.length; i++) { compareIndexes[i] = i; } if (LogManager.isMessageToBeRecorded(LogConstants.CTX_BUFFER_MGR, MessageLevel.DETAIL)) { LogManager.logDetail(LogConstants.CTX_BUFFER_MGR, "Creating STree:", newID, keyLength, elements); //$NON-NLS-1$ } return new STree(keyManager, bm, new ListNestedSortComparator(compareIndexes).defaultNullOrder(getOptions().getDefaultNullOrder()), getProcessorBatchSize(elements.subList(0, keyLength)), getProcessorBatchSize(elements), keyLength, lobManager); }
public STree createSTree(final List<? extends Expression> elements, String groupName, int keyLength) { Long newID = this.tsId.getAndIncrement(); int[] lobIndexes = LobManager.getLobIndexes(elements); Class<?>[] types = getTypeClasses(elements); BatchManagerImpl bm = createBatchManager(newID, types); LobManager lobManager = null; if (lobIndexes != null) { lobManager = new LobManager(lobIndexes, null); //persistence is not expected yet - later we might utilize storage for out-of-line lob values bm.setLobManager(lobManager); } BatchManager keyManager = createBatchManager(this.tsId.getAndIncrement(), Arrays.copyOf(types, keyLength)); int[] compareIndexes = new int[keyLength]; for (int i = 1; i < compareIndexes.length; i++) { compareIndexes[i] = i; } if (LogManager.isMessageToBeRecorded(LogConstants.CTX_BUFFER_MGR, MessageLevel.DETAIL)) { LogManager.logDetail(LogConstants.CTX_BUFFER_MGR, "Creating STree:", newID, keyLength, elements); //$NON-NLS-1$ } return new STree(keyManager, bm, new ListNestedSortComparator(compareIndexes).defaultNullOrder(getOptions().getDefaultNullOrder()), getProcessorBatchSize(elements.subList(0, keyLength)), getProcessorBatchSize(elements), keyLength, lobManager); }
public STree createSTree(final List<? extends Expression> elements, String groupName, int keyLength) { Long newID = this.tsId.getAndIncrement(); int[] lobIndexes = LobManager.getLobIndexes(elements); Class<?>[] types = getTypeClasses(elements); BatchManagerImpl bm = createBatchManager(newID, types); LobManager lobManager = null; if (lobIndexes != null) { lobManager = new LobManager(lobIndexes, null); //persistence is not expected yet - later we might utilize storage for out-of-line lob values bm.setLobManager(lobManager); } BatchManager keyManager = createBatchManager(this.tsId.getAndIncrement(), Arrays.copyOf(types, keyLength)); int[] compareIndexes = new int[keyLength]; for (int i = 1; i < compareIndexes.length; i++) { compareIndexes[i] = i; } if (LogManager.isMessageToBeRecorded(LogConstants.CTX_BUFFER_MGR, MessageLevel.DETAIL)) { LogManager.logDetail(LogConstants.CTX_BUFFER_MGR, "Creating STree:", newID, keyLength, elements); //$NON-NLS-1$ } return new STree(keyManager, bm, new ListNestedSortComparator(compareIndexes).defaultNullOrder(getOptions().getDefaultNullOrder()), getProcessorBatchSize(elements.subList(0, keyLength)), getProcessorBatchSize(elements), keyLength, lobManager); }
ListNestedSortComparator<Integer> comparator = new ListNestedSortComparator<Integer>(new int[] {0}, OrderBy.DESC);
@Test public void testComparatorNullOrdering() { ListNestedSortComparator<Integer> comparator = new ListNestedSortComparator<Integer>(new int[] {0}, OrderBy.DESC); comparator.setNullOrdering(Arrays.asList(NullOrdering.FIRST)); List<Integer>[] data = new List[3]; data[0] = Arrays.asList(1); data[1] = Arrays.asList((Integer)null); data[2] = Arrays.asList(2); Arrays.sort(data, comparator); assertNull(data[0].get(0)); comparator.setNullOrdering(Arrays.asList(NullOrdering.LAST)); Arrays.sort(data, comparator); assertNull(data[2].get(0)); comparator = new ListNestedSortComparator<Integer>(new int[] {0}, OrderBy.ASC); Arrays.sort(data, comparator); assertNull(data[0].get(0)); comparator.setNullOrdering(Arrays.asList(NullOrdering.LAST)); Arrays.sort(data, comparator); assertNull(data[2].get(0)); }
private void init(TupleSource sourceID, Mode mode, BufferManager bufferMgr, String groupName, List<? extends Expression> schema, List<Boolean> sortTypes, List<NullOrdering> nullOrderings, int[] cols) { this.source = sourceID; this.mode = mode; this.bufferManager = bufferMgr; this.groupName = groupName; this.schema = schema; this.schemaSize = bufferManager.getSchemaSize(this.schema); this.batchSize = bufferManager.getProcessorBatchSize(this.schema); this.targetRowCount = Math.max(bufferManager.getMaxProcessingSize()/this.schemaSize, 2)*this.batchSize; this.comparator = new ListNestedSortComparator(cols, sortTypes).defaultNullOrder(bufferMgr.getOptions().getDefaultNullOrder()); int distinctIndex = cols.length - 1; this.comparator.setDistinctIndex(distinctIndex); this.comparator.setNullOrdering(nullOrderings); }
private void init(TupleSource sourceID, Mode mode, BufferManager bufferMgr, String groupName, List<? extends Expression> schema, List<Boolean> sortTypes, List<NullOrdering> nullOrderings, int[] cols) { this.source = sourceID; this.mode = mode; this.bufferManager = bufferMgr; this.groupName = groupName; this.schema = schema; this.schemaSize = bufferManager.getSchemaSize(this.schema); this.batchSize = bufferManager.getProcessorBatchSize(this.schema); this.targetRowCount = Math.max(bufferManager.getMaxProcessingSize()/this.schemaSize, 2)*this.batchSize; this.comparator = new ListNestedSortComparator(cols, sortTypes).defaultNullOrder(bufferMgr.getOptions().getDefaultNullOrder()); int distinctIndex = cols.length - 1; this.comparator.setDistinctIndex(distinctIndex); this.comparator.setNullOrdering(nullOrderings); }
private void init(TupleSource sourceID, Mode mode, BufferManager bufferMgr, String groupName, List<? extends Expression> schema, List<Boolean> sortTypes, List<NullOrdering> nullOrderings, int[] cols) { this.source = sourceID; this.mode = mode; this.bufferManager = bufferMgr; this.groupName = groupName; this.schema = schema; this.schemaSize = bufferManager.getSchemaSize(this.schema); this.batchSize = bufferManager.getProcessorBatchSize(this.schema); this.targetRowCount = Math.max(bufferManager.getMaxProcessingSize()/this.schemaSize, 2)*this.batchSize; this.comparator = new ListNestedSortComparator(cols, sortTypes).defaultNullOrder(bufferMgr.getOptions().getDefaultNullOrder()); int distinctIndex = cols.length - 1; this.comparator.setDistinctIndex(distinctIndex); this.comparator.setNullOrdering(nullOrderings); }