Skip to content

Commit

Permalink
TEIID-2626 ensuring that the column type is always set
Browse files Browse the repository at this point in the history
  • Loading branch information
shawkins committed Aug 15, 2013
1 parent edc28f6 commit a462d62
Show file tree
Hide file tree
Showing 10 changed files with 27 additions and 17 deletions.
Expand Up @@ -54,6 +54,7 @@
import org.teiid.core.types.DataTypeManager;
import org.teiid.core.types.DataTypeManager.WeakReferenceHashedValueCache;
import org.teiid.core.types.Streamable;
import org.teiid.core.util.Assertion;
import org.teiid.dqp.internal.process.DQPConfiguration;
import org.teiid.dqp.internal.process.RequestWorkItem;
import org.teiid.logging.LogConstants;
Expand Down Expand Up @@ -525,7 +526,9 @@ private static Class<?>[] getTypeClasses(final List<? extends Expression> elemen
Class<?>[] types = new Class[elements.size()];
for (ListIterator<? extends Expression> i = elements.listIterator(); i.hasNext();) {
Expression expr = i.next();
types[i.previousIndex()] = expr.getType();
Class<?> type = expr.getType();
Assertion.isNotNull(type);
types[i.previousIndex()] = type;
}
return types;
}
Expand Down
Expand Up @@ -322,7 +322,7 @@ private void buildResults() throws TeiidComponentException,
ElementSymbol key = new ElementSymbol("rowId"); //$NON-NLS-1$
key.setType(DataTypeManager.DefaultDataClasses.INTEGER);
ElementSymbol value = new ElementSymbol("partitionId"); //$NON-NLS-1$
key.setType(DataTypeManager.DefaultDataClasses.INTEGER);
value.setType(DataTypeManager.DefaultDataClasses.INTEGER);
List<ElementSymbol> elements = Arrays.asList(key, value);
partitionMapping[specIndex] = this.getBufferManager().createSTree(elements, this.getConnectionID(), 1);
}
Expand Down
Expand Up @@ -58,10 +58,15 @@ public enum DisplayMode {
public ElementSymbol(String name) {
super(name);
}

public ElementSymbol(String shortName, GroupSymbol group) {
this(shortName, group, null);
}

public ElementSymbol(String shortName, GroupSymbol group, Class<?> type) {
this.setShortName(shortName);
this.groupSymbol = group;
this.type = type;
}

/**
Expand Down
Expand Up @@ -73,6 +73,7 @@ public static BufferManagerImpl getTestBufferManager(long bytesAvailable, int pr
public static BufferManagerImpl initBufferManager(BufferManagerImpl bufferManager) {
try {
bufferManager.initialize();
bufferManager.setUseWeakReferences(false);
MemoryStorageManager storageManager = new MemoryStorageManager();
SplittableStorageManager ssm = new SplittableStorageManager(storageManager);
ssm.setMaxFileSizeDirect(MemoryStorageManager.MAX_FILE_SIZE);
Expand Down
Expand Up @@ -140,7 +140,7 @@ public class TestSTree {
ElementSymbol e1 = new ElementSymbol("x");
e1.setType(Integer.class);
ElementSymbol e2 = new ElementSymbol("x");
e1.setType(Integer.class);
e2.setType(Integer.class);
List elements = Arrays.asList(e1, e2);
STree map = bm.createSTree(elements, "1", 2);

Expand Down
Expand Up @@ -464,7 +464,6 @@ private void sampleDataBQT_defect9842(FakeDataManager dataMgr) throws Exception
ProcessorPlan plan = helpGetPlan(sql, RealMetadataFactory.example1Cached());
CommandContext cc = TestProcessor.createCommandContext();
BufferManagerImpl impl = BufferManagerFactory.getTestBufferManager(0, 2);
impl.setUseWeakReferences(false);
cc.setBufferManager(impl);
// Run query
helpProcess(plan, cc, dataManager, expected);
Expand Down
Expand Up @@ -32,6 +32,7 @@
import org.teiid.common.buffer.BufferManager.TupleSourceType;
import org.teiid.common.buffer.BufferManagerFactory;
import org.teiid.common.buffer.TupleBuffer;
import org.teiid.core.types.DataTypeManager;
import org.teiid.query.processor.relational.FakeRelationalNode;
import org.teiid.query.sql.symbol.ElementSymbol;

Expand All @@ -46,7 +47,7 @@ public class TestBatchIterator {
Arrays.asList(1)
}, 1));
BufferManager bm = BufferManagerFactory.getStandaloneBufferManager();
bi.setBuffer(bm.createTupleBuffer(Arrays.asList(new ElementSymbol("x")), "test", TupleSourceType.PROCESSOR), true); //$NON-NLS-1$
bi.setBuffer(bm.createTupleBuffer(Arrays.asList(new ElementSymbol("x", null, DataTypeManager.DefaultDataClasses.INTEGER)), "test", TupleSourceType.PROCESSOR), true); //$NON-NLS-1$
bi.mark();
bi.nextTuple();
bi.nextTuple();
Expand All @@ -61,7 +62,7 @@ public class TestBatchIterator {
Arrays.asList(3)
}, 2));
BufferManager bm = BufferManagerFactory.getStandaloneBufferManager();
TupleBuffer tb = bm.createTupleBuffer(Arrays.asList(new ElementSymbol("x")), "test", TupleSourceType.PROCESSOR);
TupleBuffer tb = bm.createTupleBuffer(Arrays.asList(new ElementSymbol("x", null, DataTypeManager.DefaultDataClasses.INTEGER)), "test", TupleSourceType.PROCESSOR);
bi.setBuffer(tb, true); //$NON-NLS-1$
bi.nextTuple();
bi.mark();
Expand All @@ -77,7 +78,7 @@ public class TestBatchIterator {
Arrays.asList(2),
}, 2));
BufferManager bm = BufferManagerFactory.getStandaloneBufferManager();
TupleBuffer tb = bm.createTupleBuffer(Arrays.asList(new ElementSymbol("x")), "test", TupleSourceType.PROCESSOR);
TupleBuffer tb = bm.createTupleBuffer(Arrays.asList(new ElementSymbol("x", null, DataTypeManager.DefaultDataClasses.INTEGER)), "test", TupleSourceType.PROCESSOR);
bi.setBuffer(tb, true); //$NON-NLS-1$
bi.hasNext();
bi.mark();
Expand All @@ -98,7 +99,7 @@ public class TestBatchIterator {
Arrays.asList(1),
}, 2));
BufferManager bm = BufferManagerFactory.getStandaloneBufferManager();
bi.setBuffer(bm.createTupleBuffer(Arrays.asList(new ElementSymbol("x")), "test", TupleSourceType.PROCESSOR), true); //$NON-NLS-1$
bi.setBuffer(bm.createTupleBuffer(Arrays.asList(new ElementSymbol("x", null, DataTypeManager.DefaultDataClasses.INTEGER)), "test", TupleSourceType.PROCESSOR), true); //$NON-NLS-1$
bi.mark();
assertNotNull(bi.nextTuple());
assertNotNull(bi.nextTuple());
Expand All @@ -121,7 +122,7 @@ public class TestBatchIterator {
Arrays.asList(1),
}, 2));
BufferManager bm = BufferManagerFactory.getStandaloneBufferManager();
TupleBuffer tb = bm.createTupleBuffer(Arrays.asList(new ElementSymbol("x")), "test", TupleSourceType.PROCESSOR);
TupleBuffer tb = bm.createTupleBuffer(Arrays.asList(new ElementSymbol("x", null, DataTypeManager.DefaultDataClasses.INTEGER)), "test", TupleSourceType.PROCESSOR);
bi.setBuffer(tb, false); //$NON-NLS-1$
bi.setPosition(2);
assertTrue(bi.hasNext());
Expand Down
Expand Up @@ -38,6 +38,7 @@
import org.teiid.common.buffer.TupleSource;
import org.teiid.core.TeiidComponentException;
import org.teiid.core.TeiidException;
import org.teiid.core.types.DataTypeManager;
import org.teiid.query.sql.symbol.ElementSymbol;
import org.teiid.query.util.CommandContext;

Expand Down Expand Up @@ -78,14 +79,14 @@ public void helpTestProcessor(FakeProcessorPlan plan, List[] expectedResults) th

@Test public void testNoResults() throws Exception {
List elements = new ArrayList();
elements.add(new ElementSymbol("a")); //$NON-NLS-1$
elements.add(new ElementSymbol("x", null, DataTypeManager.DefaultDataClasses.INTEGER)); //$NON-NLS-1$
FakeProcessorPlan plan = new FakeProcessorPlan(elements, null);
helpTestProcessor(plan, new List[0]);
}

@Test public void testBlockNoResults() throws Exception {
List elements = new ArrayList();
elements.add(new ElementSymbol("a")); //$NON-NLS-1$
elements.add(new ElementSymbol("x", null, DataTypeManager.DefaultDataClasses.INTEGER)); //$NON-NLS-1$

List batches = new ArrayList();
batches.add(BlockedException.INSTANCE);
Expand All @@ -99,7 +100,7 @@ public void helpTestProcessor(FakeProcessorPlan plan, List[] expectedResults) th

@Test public void testProcessWithOccasionalBlocks() throws Exception {
List elements = new ArrayList();
elements.add(new ElementSymbol("a")); //$NON-NLS-1$
elements.add(new ElementSymbol("x", null, DataTypeManager.DefaultDataClasses.INTEGER)); //$NON-NLS-1$

HashSet blocked = new HashSet(Arrays.asList(new Integer[] { new Integer(0), new Integer(2), new Integer(7) }));
int numBatches = 10;
Expand Down
Expand Up @@ -364,7 +364,7 @@ public void helpTestEmptyGroup(boolean groupBy) throws Exception {
// Set grouping elements to null
if (groupBy) {
List groupingElements = new ArrayList();
groupingElements.add(new ElementSymbol("col1")); //$NON-NLS-1$
groupingElements.add(col1.clone()); //$NON-NLS-1$
node.setOrderBy(new OrderBy(groupingElements).getOrderByItems());
}
CommandContext context = new CommandContext("pid", "test", null, null, 1); //$NON-NLS-1$ //$NON-NLS-2$
Expand Down
Expand Up @@ -620,11 +620,11 @@ public void helpTestJoinDirect(List[] expectedResults, int batchSize, int proces
ElementSymbol es2 = new ElementSymbol("e2"); //$NON-NLS-1$
es2.setType(DataTypeManager.DefaultDataClasses.INTEGER);
ElementSymbol es3 = new ElementSymbol("e3"); //$NON-NLS-1$
es1.setType(DataTypeManager.DefaultDataClasses.INTEGER);
es3.setType(DataTypeManager.DefaultDataClasses.INTEGER);
ElementSymbol es4 = new ElementSymbol("e4"); //$NON-NLS-1$
es2.setType(DataTypeManager.DefaultDataClasses.INTEGER);
es4.setType(DataTypeManager.DefaultDataClasses.INTEGER);
ElementSymbol es5 = new ElementSymbol("e5"); //$NON-NLS-1$
es2.setType(DataTypeManager.DefaultDataClasses.INTEGER);
es5.setType(DataTypeManager.DefaultDataClasses.INTEGER);

leftNode = new BlockingFakeRelationalNode(1, leftTuples);
leftNode.setElements(Arrays.asList(es1, es2));
Expand Down

0 comments on commit a462d62

Please sign in to comment.