public String getElementRuntimeTypeName(Object elementID) throws TeiidComponentException, QueryMetadataException { if(elementID instanceof TempMetadataID) { TempMetadataID tempID = (TempMetadataID)elementID; if (tempID.getType() != null) { return DataTypeManager.getDataTypeName( tempID.getType() ); } throw new AssertionError("No type set for element " + elementID); //$NON-NLS-1$ } return this.actualMetadata.getElementRuntimeTypeName(elementID); }
public String getElementRuntimeTypeName(Object elementID) throws TeiidComponentException, QueryMetadataException { if(elementID instanceof TempMetadataID) { TempMetadataID tempID = (TempMetadataID)elementID; if (tempID.getType() != null) { return DataTypeManager.getDataTypeName( tempID.getType() ); } throw new AssertionError("No type set for element " + elementID); //$NON-NLS-1$ } return this.actualMetadata.getElementRuntimeTypeName(elementID); }
public String getElementRuntimeTypeName(Object elementID) throws TeiidComponentException, QueryMetadataException { if(elementID instanceof TempMetadataID) { TempMetadataID tempID = (TempMetadataID)elementID; if (tempID.getType() != null) { return DataTypeManager.getDataTypeName( tempID.getType() ); } throw new AssertionError("No type set for element " + elementID); //$NON-NLS-1$ } return this.actualMetadata.getElementRuntimeTypeName(elementID); }
colTypes.add(col.getType()); break;
colTypes.add(col.getType()); break;
colTypes.add(col.getType()); break;
/** * Remove unused projects by replacing with null * @param with * @param subCommand * @param elements * @param toRemove * @return * @throws QueryMetadataException * @throws QueryResolverException * @throws TeiidComponentException */ private Query removeUnusedProjection(WithQueryCommand with, QueryCommand subCommand, List<TempMetadataID> elements, List<Integer> toRemove) throws QueryMetadataException, QueryResolverException, TeiidComponentException { Query query = null; if (!(subCommand instanceof Query) || subCommand.getOrderBy() != null) { GroupSymbol gs = new GroupSymbol("x"); //$NON-NLS-1$ gs = RulePlaceAccess.recontextSymbol(gs, context.getGroups()); query = QueryRewriter.createInlineViewQuery(gs, subCommand, metadata, ResolverUtil.resolveElementsInGroup(with.getGroupSymbol(), metadata)); } else { query = (Query)subCommand; } for (int i : toRemove) { query.getSelect().getSymbols().set(i, new ExpressionSymbol(elements.get(i).getName(), new Constant(null, elements.get(i).getType()))); } return query; }
/** * Remove unused projects by replacing with null * @param with * @param subCommand * @param elements * @param toRemove * @return * @throws QueryMetadataException * @throws QueryResolverException * @throws TeiidComponentException */ private Query removeUnusedProjection(WithQueryCommand with, QueryCommand subCommand, List<TempMetadataID> elements, List<Integer> toRemove) throws QueryMetadataException, QueryResolverException, TeiidComponentException { Query query = null; if (!(subCommand instanceof Query) || subCommand.getOrderBy() != null) { GroupSymbol gs = new GroupSymbol("x"); //$NON-NLS-1$ gs = RulePlaceAccess.recontextSymbol(gs, context.getGroups()); query = QueryRewriter.createInlineViewQuery(gs, subCommand, metadata, ResolverUtil.resolveElementsInGroup(with.getGroupSymbol(), metadata)); } else { query = (Query)subCommand; } for (int i : toRemove) { query.getSelect().getSymbols().set(i, new ExpressionSymbol(elements.get(i).getName(), new Constant(null, elements.get(i).getType()))); } return query; }
@Test public void testSelectIntoWithNullLiteral() { String sql = "select null as x into #temp from pm1.g1"; //$NON-NLS-1$ Query query = (Query)helpResolve(sql); TempMetadataStore store = query.getTemporaryMetadata(); TempMetadataID id = store.getTempElementID("#temp.x"); //$NON-NLS-1$ assertEquals(DataTypeManager.DefaultDataClasses.STRING, id.getType()); }
@Test public void testInsertWithNullLiteral() { String sql = "insert into #temp (x) values (null)"; //$NON-NLS-1$ Insert insert = (Insert)helpResolve(sql); TempMetadataStore store = insert.getTemporaryMetadata(); TempMetadataID id = store.getTempElementID("#temp.x"); //$NON-NLS-1$ assertEquals(DataTypeManager.DefaultDataClasses.STRING, id.getType()); }
public static void checkException(Expression obj) throws QueryResolverException { if (obj == null || obj instanceof ExceptionExpression) { return; } if (obj instanceof ElementSymbol) { ElementSymbol es = (ElementSymbol)obj; if (!(es.getMetadataID() instanceof TempMetadataID)) { throw new QueryResolverException(QueryPlugin.Event.TEIID31120, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31120, obj)); } TempMetadataID tid = (TempMetadataID)es.getMetadataID(); if (tid.getType() != Exception.class) { throw new QueryResolverException(QueryPlugin.Event.TEIID31120, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31120, obj)); } } else if (obj instanceof Constant) { Constant c = (Constant)obj; if (!(c.getValue() instanceof Exception)) { throw new QueryResolverException(QueryPlugin.Event.TEIID31120, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31120, obj)); } } else { throw new QueryResolverException(QueryPlugin.Event.TEIID31120, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31120, obj)); } }
public static void checkException(Expression obj) throws QueryResolverException { if (obj == null || obj instanceof ExceptionExpression) { return; } if (obj instanceof ElementSymbol) { ElementSymbol es = (ElementSymbol)obj; if (!(es.getMetadataID() instanceof TempMetadataID)) { throw new QueryResolverException(QueryPlugin.Event.TEIID31120, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31120, obj)); } TempMetadataID tid = (TempMetadataID)es.getMetadataID(); if (tid.getType() != Exception.class) { throw new QueryResolverException(QueryPlugin.Event.TEIID31120, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31120, obj)); } } else if (obj instanceof Constant) { Constant c = (Constant)obj; if (!(c.getValue() instanceof Exception)) { throw new QueryResolverException(QueryPlugin.Event.TEIID31120, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31120, obj)); } } else { throw new QueryResolverException(QueryPlugin.Event.TEIID31120, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31120, obj)); } }
public static void checkException(Expression obj) throws QueryResolverException { if (obj == null || obj instanceof ExceptionExpression) { return; } if (obj instanceof ElementSymbol) { ElementSymbol es = (ElementSymbol)obj; if (!(es.getMetadataID() instanceof TempMetadataID)) { throw new QueryResolverException(QueryPlugin.Event.TEIID31120, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31120, obj)); } TempMetadataID tid = (TempMetadataID)es.getMetadataID(); if (tid.getType() != Exception.class) { throw new QueryResolverException(QueryPlugin.Event.TEIID31120, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31120, obj)); } } else if (obj instanceof Constant) { Constant c = (Constant)obj; if (!(c.getValue() instanceof Exception)) { throw new QueryResolverException(QueryPlugin.Event.TEIID31120, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31120, obj)); } } else { throw new QueryResolverException(QueryPlugin.Event.TEIID31120, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31120, obj)); } }
Query query = QueryRewriter.createInlineViewQuery(gs, subCommand, metadata, ResolverUtil.resolveElementsInGroup(with.getGroupSymbol(), metadata)); for (int i : toRemove) { query.getSelect().getSymbols().set(i, new ExpressionSymbol(elements.get(i).getName(), new Constant(null, elements.get(i).getType())));