use of org.teiid.query.sql.lang.OrderBy in project teiid by teiid.
the class TestStaticSymbolMappingVisitor method testVisitOrderBy.
public void testVisitOrderBy() {
OrderBy ob = new OrderBy();
ob.addVariable(exampleElement(true, 0));
ob.addVariable(exampleElement(true, 1));
// $NON-NLS-1$
ob.addVariable(new AliasSymbol("abc", exampleElement(true, 2)));
helpTest(ob, getSymbolMap());
}
use of org.teiid.query.sql.lang.OrderBy in project teiid by teiid.
the class TestEnginePerformance method helpTestLargeSort.
private void helpTestLargeSort(int iterations, int threads, final int rows) throws InterruptedException, Exception {
final List<ElementSymbol> elems = new ArrayList<ElementSymbol>();
final int cols = 50;
for (int i = 0; i < cols; i++) {
ElementSymbol elem1 = new ElementSymbol("e" + i);
elem1.setType(DataTypeManager.DefaultDataClasses.STRING);
elems.add(elem1);
}
final List<ElementSymbol> sortElements = Arrays.asList(elems.get(0));
final Task task = new Task() {
@Override
public Void call() throws Exception {
// $NON-NLS-1$ //$NON-NLS-2$
CommandContext context = new CommandContext("pid", "test", null, null, 1);
SortNode sortNode = new SortNode(1);
sortNode.setSortElements(new OrderBy(sortElements).getOrderByItems());
sortNode.setMode(Mode.SORT);
sortNode.setElements(elems);
RelationalNode rn = new RelationalNode(2) {
int blockingPeriod = 3;
int count = 0;
int batches = 0;
@Override
protected TupleBatch nextBatchDirect() throws BlockedException, TeiidComponentException, TeiidProcessingException {
if (count++ % blockingPeriod == 0) {
throw BlockedException.INSTANCE;
}
int batchSize = this.getBatchSize();
int batchRows = batchSize;
boolean done = false;
int start = batches++ * batchSize;
if (start + batchSize >= rows) {
done = true;
batchRows = rows - start;
}
ArrayList<List<?>> batch = new ArrayList<List<?>>(batchRows);
for (int i = 0; i < batchRows; i++) {
ArrayList<Object> row = new ArrayList<Object>();
for (int j = 0; j < cols; j++) {
if (j == 0) {
row.add(String.valueOf((i * 279470273) % 4294967291l));
} else {
row.add(i + "abcdefghijklmnop" + j);
}
}
batch.add(row);
}
TupleBatch result = new TupleBatch(start + 1, batch);
if (done) {
result.setTerminationFlag(true);
}
return result;
}
@Override
public Object clone() {
return null;
}
};
rn.setElements(elems);
sortNode.addChild(rn);
sortNode.initialize(context, bm, null);
rn.initialize(context, bm, null);
process(sortNode, rows);
return null;
}
};
runTask(iterations, threads, task);
}
use of org.teiid.query.sql.lang.OrderBy in project teiid by teiid.
the class TestEnginePerformance method helpTestSort.
public void helpTestSort(Mode mode, int expectedRowCount, List<? extends Expression> sortElements, List<?>[] data, List<? extends Expression> elems, BufferManager bufferManager) throws TeiidComponentException, TeiidProcessingException {
// $NON-NLS-1$ //$NON-NLS-2$
CommandContext context = new CommandContext("pid", "test", null, null, 1);
BlockingFakeRelationalNode dataNode = new BlockingFakeRelationalNode(0, data);
dataNode.setReturnPeriod(3);
dataNode.setElements(elems);
dataNode.initialize(context, bufferManager, null);
SortNode sortNode = new SortNode(1);
sortNode.setSortElements(new OrderBy(sortElements).getOrderByItems());
sortNode.setMode(mode);
sortNode.setElements(dataNode.getElements());
sortNode.addChild(dataNode);
sortNode.initialize(context, bufferManager, null);
process(sortNode, expectedRowCount);
}
Aggregations