Search in sources :

Example 11 with ElementSymbol

use of org.teiid.query.sql.symbol.ElementSymbol in project teiid by teiid.

the class TestSTree method testRemoveAll.

@Test
public void testRemoveAll() throws TeiidComponentException {
    BufferManager bm = BufferManagerFactory.getStandaloneBufferManager();
    ElementSymbol e1 = new ElementSymbol("x");
    e1.setType(Integer.class);
    ElementSymbol e2 = new ElementSymbol("y");
    e2.setType(String.class);
    List<ElementSymbol> elements = Arrays.asList(e1, e2);
    STree map = bm.createSTree(elements, "1", 1);
    for (int i = 20000; i > 0; i--) {
        assertNull(map.insert(Arrays.asList(i, String.valueOf(i)), InsertMode.NEW, -1));
        assertEquals(20000 - i + 1, map.getRowCount());
    }
    for (int i = 20000; i > 0; i--) {
        assertNotNull(String.valueOf(i), map.remove(Arrays.asList(i)));
    }
    assertEquals(0, map.getRowCount());
    assertNull(map.insert(Arrays.asList(1, String.valueOf(1)), InsertMode.NEW, -1));
}
Also used : ElementSymbol(org.teiid.query.sql.symbol.ElementSymbol) Test(org.junit.Test)

Example 12 with ElementSymbol

use of org.teiid.query.sql.symbol.ElementSymbol in project teiid by teiid.

the class TestTupleBuffer method testForwardOnly.

@Test
public void testForwardOnly() throws Exception {
    // $NON-NLS-1$
    ElementSymbol x = new ElementSymbol("x");
    x.setType(DataTypeManager.DefaultDataClasses.INTEGER);
    List<ElementSymbol> schema = Arrays.asList(x);
    // $NON-NLS-1$
    TupleBuffer tb = BufferManagerFactory.getStandaloneBufferManager().createTupleBuffer(schema, "x", TupleSourceType.PROCESSOR);
    tb.setForwardOnly(true);
    tb.addTuple(Arrays.asList(1));
    TupleBatch batch = tb.getBatch(1);
    assertTrue(!batch.getTerminationFlag());
    assertEquals(1, batch.getBeginRow());
    try {
        tb.getBatch(1);
        // $NON-NLS-1$
        fail("expected exception");
    } catch (AssertionError e) {
    }
    tb.addTuple(Arrays.asList(1));
    tb.close();
    batch = tb.getBatch(2);
    assertTrue(batch.getTerminationFlag());
    assertEquals(2, batch.getBeginRow());
}
Also used : ElementSymbol(org.teiid.query.sql.symbol.ElementSymbol) Test(org.junit.Test)

Example 13 with ElementSymbol

use of org.teiid.query.sql.symbol.ElementSymbol in project teiid by teiid.

the class TestTupleBuffer method testTruncatePartial.

@Test
public void testTruncatePartial() throws Exception {
    // $NON-NLS-1$
    ElementSymbol x = new ElementSymbol("x");
    x.setType(DataTypeManager.DefaultDataClasses.INTEGER);
    List<ElementSymbol> schema = Arrays.asList(x);
    // $NON-NLS-1$
    TupleBuffer tb = BufferManagerFactory.getStandaloneBufferManager().createTupleBuffer(schema, "x", TupleSourceType.PROCESSOR);
    tb.setBatchSize(64);
    for (int i = 0; i < 65; i++) {
        tb.addTuple(Arrays.asList(1));
    }
    TupleBatch batch = tb.getBatch(1);
    assertTrue(!batch.getTerminationFlag());
    assertEquals(65, tb.getManagedRowCount());
    tb.truncateTo(3);
    assertEquals(3, tb.getManagedRowCount());
    assertEquals(3, tb.getRowCount());
    batch = tb.getBatch(3);
}
Also used : ElementSymbol(org.teiid.query.sql.symbol.ElementSymbol) Test(org.junit.Test)

Example 14 with ElementSymbol

use of org.teiid.query.sql.symbol.ElementSymbol in project teiid by teiid.

the class TestTupleBuffer method testTruncateMultiple.

@Test
public void testTruncateMultiple() throws Exception {
    // $NON-NLS-1$
    ElementSymbol x = new ElementSymbol("x");
    x.setType(DataTypeManager.DefaultDataClasses.INTEGER);
    List<ElementSymbol> schema = Arrays.asList(x);
    // $NON-NLS-1$
    TupleBuffer tb = BufferManagerFactory.getStandaloneBufferManager().createTupleBuffer(schema, "x", TupleSourceType.PROCESSOR);
    tb.setBatchSize(16);
    for (int i = 0; i < 131; i++) {
        tb.addTuple(Arrays.asList(1));
    }
    tb.truncateTo(17);
    assertEquals(17, tb.getManagedRowCount());
    assertEquals(17, tb.getRowCount());
}
Also used : ElementSymbol(org.teiid.query.sql.symbol.ElementSymbol) Test(org.junit.Test)

Example 15 with ElementSymbol

use of org.teiid.query.sql.symbol.ElementSymbol in project teiid by teiid.

the class TestBufferManagerImpl method testProcessorBatchSize.

@Test
public void testProcessorBatchSize() {
    BufferManager bm = BufferManagerFactory.createBufferManager();
    int processorBatchSize = bm.getProcessorBatchSize();
    List<ElementSymbol> elements = new ArrayList<ElementSymbol>();
    ElementSymbol a = new ElementSymbol("a");
    a.setType(DataTypeManager.DefaultDataClasses.INTEGER);
    // we use a somewhat high estimate of string size
    ElementSymbol b = new ElementSymbol("b");
    b.setType(DataTypeManager.DefaultDataClasses.STRING);
    elements.add(a);
    // fixed/small
    assertEquals(processorBatchSize * 8, bm.getProcessorBatchSize(elements));
    elements.add(b);
    // small
    assertEquals(processorBatchSize * 4, bm.getProcessorBatchSize(elements));
    elements.add(b);
    // moderately small
    assertEquals(processorBatchSize * 2, bm.getProcessorBatchSize(elements));
    elements.add(b);
    elements.add(b);
    // "normal"
    assertEquals(processorBatchSize, bm.getProcessorBatchSize(elements));
    elements.addAll(Collections.nCopies(28, b));
    // large
    assertEquals(processorBatchSize / 2, bm.getProcessorBatchSize(elements));
    elements.addAll(Collections.nCopies(100, b));
    // huge
    assertEquals(processorBatchSize / 4, bm.getProcessorBatchSize(elements));
    elements.addAll(Collections.nCopies(375, b));
    // extreme
    assertEquals(processorBatchSize / 8, bm.getProcessorBatchSize(elements));
}
Also used : ElementSymbol(org.teiid.query.sql.symbol.ElementSymbol) ArrayList(java.util.ArrayList) BufferManager(org.teiid.common.buffer.BufferManager) Test(org.junit.Test)

Aggregations

ElementSymbol (org.teiid.query.sql.symbol.ElementSymbol)417 ArrayList (java.util.ArrayList)165 Test (org.junit.Test)157 GroupSymbol (org.teiid.query.sql.symbol.GroupSymbol)148 Expression (org.teiid.query.sql.symbol.Expression)104 List (java.util.List)103 Constant (org.teiid.query.sql.symbol.Constant)94 MultipleElementSymbol (org.teiid.query.sql.symbol.MultipleElementSymbol)41 SymbolMap (org.teiid.query.sql.util.SymbolMap)40 PlanNode (org.teiid.query.optimizer.relational.plantree.PlanNode)36 CompareCriteria (org.teiid.query.sql.lang.CompareCriteria)29 Map (java.util.Map)28 AggregateSymbol (org.teiid.query.sql.symbol.AggregateSymbol)28 Query (org.teiid.query.sql.lang.Query)26 HashMap (java.util.HashMap)25 Select (org.teiid.query.sql.lang.Select)24 BufferManager (org.teiid.common.buffer.BufferManager)22 Criteria (org.teiid.query.sql.lang.Criteria)22 LinkedList (java.util.LinkedList)20 TupleBuffer (org.teiid.common.buffer.TupleBuffer)19