/** * Get full parameter name,. If unknown, null is returned. * @return Parameter name */ public String getName() { return this.parameterSymbol.getName(); }
/** * Get full parameter name,. If unknown, null is returned. * @return Parameter name */ public String getName() { return this.parameterSymbol.getName(); }
/** * Get full parameter name,. If unknown, null is returned. * @return Parameter name */ public String getName() { return this.parameterSymbol.getName(); }
public void addAll(Collection<ElementSymbol> elems) { for (ElementSymbol es : elems) { this.add(es.getName(), es); } }
static List<ElementSymbol> getElementsUnderNode(Object mid, Collection<ElementSymbol> validElements, QueryMetadataInterface metadata) throws TeiidComponentException, QueryMetadataException { List<ElementSymbol> elements = new ArrayList<ElementSymbol>(); String nodeName = metadata.getFullName(mid); for (ElementSymbol validElement : validElements) { String qualifiedName = validElement.getName(); if (StringUtil.startsWithIgnoreCase(qualifiedName, nodeName) && (qualifiedName.length() == nodeName.length() || qualifiedName.charAt(nodeName.length()) == '.')) { elements.add(validElement); } } return elements; }
KeyRecord addFBI(MetadataFactory factory, List<Expression> expressions, Table table, String name) throws MetadataException { List<String> columnNames = new ArrayList<String>(expressions.size()); List<Boolean> nonColumnExpressions = new ArrayList<Boolean>(expressions.size()); boolean fbi = false; for (int i = 0; i < expressions.size(); i++) { Expression ex = expressions.get(i); if (ex instanceof ElementSymbol) { columnNames.add(((ElementSymbol)ex).getName()); nonColumnExpressions.add(Boolean.FALSE); } else { columnNames.add(ex.toString()); nonColumnExpressions.add(Boolean.TRUE); fbi = true; } } return factory.addFunctionBasedIndex(name != null?name:(SQLConstants.NonReserved.INDEX+(fbi?table.getFunctionBasedIndexes().size():table.getIndexes().size())), columnNames, nonColumnExpressions, table); }
KeyRecord addFBI(MetadataFactory factory, List<Expression> expressions, Table table, String name) throws MetadataException { List<String> columnNames = new ArrayList<String>(expressions.size()); List<Boolean> nonColumnExpressions = new ArrayList<Boolean>(expressions.size()); boolean fbi = false; for (int i = 0; i < expressions.size(); i++) { Expression ex = expressions.get(i); if (ex instanceof ElementSymbol) { columnNames.add(((ElementSymbol)ex).getName()); nonColumnExpressions.add(Boolean.FALSE); } else { columnNames.add(ex.toString()); nonColumnExpressions.add(Boolean.TRUE); fbi = true; } } return factory.addFunctionBasedIndex(name != null?name:(SQLConstants.NonReserved.INDEX+(fbi?table.getFunctionBasedIndexes().size():table.getIndexes().size())), columnNames, nonColumnExpressions, table); }
KeyRecord addFBI(MetadataFactory factory, List<Expression> expressions, Table table, String name) throws MetadataException { List<String> columnNames = new ArrayList<String>(expressions.size()); List<Boolean> nonColumnExpressions = new ArrayList<Boolean>(expressions.size()); boolean fbi = false; for (int i = 0; i < expressions.size(); i++) { Expression ex = expressions.get(i); if (ex instanceof ElementSymbol) { columnNames.add(((ElementSymbol)ex).getName()); nonColumnExpressions.add(Boolean.FALSE); } else { columnNames.add(ex.toString()); nonColumnExpressions.add(Boolean.TRUE); fbi = true; } } return factory.addFunctionBasedIndex(name != null?name:(SQLConstants.NonReserved.INDEX+(fbi?table.getFunctionBasedIndexes().size():table.getIndexes().size())), columnNames, nonColumnExpressions, table); }
/** * check to make sure that given query nodes bindings are only to the node provided, * if they are returns true; false otherwise */ private boolean areBindingsOnlyToNode(QueryNode modifiedNode, MappingSourceNode sourceNode) throws TeiidComponentException { List<Expression> bindings = QueryResolver.parseBindings(modifiedNode); String nodeStr = sourceNode.getActualResultSetName() + Symbol.SEPARATOR; for (Iterator<Expression> i = bindings.iterator(); i.hasNext();) { Expression ses = i.next(); if (ses instanceof AliasSymbol) { ses = ((AliasSymbol)ses).getSymbol(); } ElementSymbol binding = (ElementSymbol)ses; if (!binding.getName().startsWith(nodeStr)) { return false; } } return true; }
/** * @see java.lang.Object#clone() */ public Object clone() { SPParameter copy = new SPParameter(); copy.index = this.index; copy.parameterType = this.parameterType; copy.parameterSymbol = this.parameterSymbol.clone(); if(this.expression != null) { copy.setExpression((Expression)this.expression.clone()); } if(this.resultSetColumns != null) { Iterator<ElementSymbol> iter = this.resultSetColumns.iterator(); Iterator<Object> idIter = this.resultSetIDs.iterator(); while(iter.hasNext()) { ElementSymbol column = iter.next(); copy.addResultSetColumn(column.getName(), column.getType(), idIter.next()); } } copy.setUsingDefault(this.usingDefault); copy.varArg = this.varArg; return copy; }
/** * Returns the context for a given context function */ static MappingNode getContext(XMLPlannerEnvironment planEnv, Function contextFunction) throws QueryPlannerException { ElementSymbol targetContext = (ElementSymbol)contextFunction.getArg(0); MappingNode contextNode = MappingNode.findNode(planEnv.mappingDoc, targetContext.getName()); if (contextNode == null){ throw new QueryPlannerException(QueryPlugin.Event.TEIID30309, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30309, targetContext)); } return contextNode; }
private LanguageObject resolveAsGroup( LanguageObject rowValue) { if (rowValue instanceof ElementSymbol) { ElementSymbol es = (ElementSymbol)rowValue; if (es.getMetadataID() == null) { try { elementsVisitor.resolveElementSymbol(es); } catch (QueryResolverException | TeiidComponentException e) { GroupSymbol gs = new GroupSymbol(es.getName()); try { ResolverUtil.resolveGroup(gs, metadata); rowValue = gs; } catch (QueryResolverException | TeiidComponentException e1) { } } } } return rowValue; } };
private LanguageObject resolveAsGroup( LanguageObject rowValue) { if (rowValue instanceof ElementSymbol) { ElementSymbol es = (ElementSymbol)rowValue; if (es.getMetadataID() == null) { try { elementsVisitor.resolveElementSymbol(es); } catch (QueryResolverException | TeiidComponentException e) { GroupSymbol gs = new GroupSymbol(es.getName()); try { ResolverUtil.resolveGroup(gs, metadata); rowValue = gs; } catch (QueryResolverException | TeiidComponentException e1) { } } } } return rowValue; } };
private void helpCheckSelect(Query query, String[] elementNames) { Select select = query.getSelect(); List<Expression> elements = select.getProjectedSymbols(); assertEquals("Wrong number of select symbols: ", elementNames.length, elements.size()); //$NON-NLS-1$ for(int i=0; i<elements.size(); i++) { Expression symbol = elements.get(i); String name = Symbol.getShortName(symbol); if (symbol instanceof ElementSymbol) { name = ((ElementSymbol)symbol).getName(); } assertEquals("Element name does not match: ", elementNames[i].toUpperCase(), name.toString().toUpperCase()); //$NON-NLS-1$ } }
private void helpCheckElements(OrderBy langObj, String[] elementNames, String[] elementIDs) { List<ElementSymbol> elements = new ArrayList<ElementSymbol>(); for (Iterator<Expression> i = langObj.getSortKeys().iterator(); i.hasNext();) { ElementCollectorVisitor.getElements(i.next(), elements); } assertEquals("Wrong number of elements: ", elementNames.length, elements.size()); //$NON-NLS-1$ for (int i = 0; i < elements.size(); i++) { ElementSymbol symbol = elements.get(i); assertEquals("Element name does not match: ", elementNames[i].toUpperCase(), symbol.getName().toUpperCase()); //$NON-NLS-1$ Column elementID = (Column)symbol.getMetadataID(); assertNotNull("ElementSymbol " + symbol + " was not resolved and has no metadataID", elementID); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("ElementID name does not match: ", elementIDs[i].toUpperCase(), elementID.getFullName().toUpperCase()); //$NON-NLS-1$ } }
private void helpCheckElements(LanguageObject langObj, String[] elementNames, String[] elementIDs) { List<ElementSymbol> elements = new ArrayList<ElementSymbol>(); ElementCollectorVisitor.getElements(langObj, elements); assertEquals("Wrong number of elements: ", elementNames.length, elements.size()); //$NON-NLS-1$ for(int i=0; i<elements.size(); i++) { ElementSymbol symbol = elements.get(i); assertEquals("Element name does not match: ", elementNames[i].toUpperCase(), symbol.getName().toUpperCase()); //$NON-NLS-1$ Object elementID = symbol.getMetadataID(); try { String name = metadata.getFullName(elementID); assertNotNull("ElementSymbol " + symbol + " was not resolved and has no metadataID", elementID); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("ElementID name does not match: ", elementIDs[i].toUpperCase(), name.toUpperCase()); //$NON-NLS-1$ } catch (TeiidComponentException e) { throw new RuntimeException(e); } } }
@Override public void visit( ElementSymbol obj ) { if (obj.getDisplayMode().equals(ElementSymbol.DisplayMode.SHORT_OUTPUT_NAME) || shortNameOnly) { outputShortName(obj); return; } String name = obj.getOutputName(); if (obj.getDisplayMode().equals(ElementSymbol.DisplayMode.FULLY_QUALIFIED)) { name = obj.getName(); } outputDisplayName(name); }
@Test public void testStoredSubQuery3() { Query resolvedQuery = (Query) helpResolve("select * from (EXEC pm1.sq2('abc')) as x"); //$NON-NLS-1$ helpCheckFrom(resolvedQuery, new String[] { "x" }); //$NON-NLS-1$ List<ElementSymbol> elements = (List<ElementSymbol>) ElementCollectorVisitor.getElements(resolvedQuery.getSelect(), false); ElementSymbol elem1 = elements.get(0); assertEquals("Did not get expected element", "x.e1", elem1.getName() ); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("Did not get expected type", DataTypeManager.DefaultDataClasses.STRING, elem1.getType()); //$NON-NLS-1$ ElementSymbol elem2 = elements.get(1); assertEquals("Did not get expected element", "x.e2", elem2.getName() ); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("Did not get expected type", DataTypeManager.DefaultDataClasses.INTEGER, elem2.getType()); //$NON-NLS-1$ }
@Test public void testClone5() { ElementSymbol e1 = sampleElement1(); ElementSymbol copy = e1.clone(); helpEquals(e1, copy, true); // Change original, clone shouldn't change String originalName = e1.getName(); assertTrue("Cloned value changed but should not have: ", copy.getName().equals(originalName)); //$NON-NLS-1$ GroupSymbol originalGroup = e1.getGroupSymbol(); e1.setGroupSymbol(new GroupSymbol("b")); //$NON-NLS-1$ assertTrue("Cloned value changed but should not have: ", copy.getGroupSymbol().equals(originalGroup)); //$NON-NLS-1$ boolean fullyQualified = e1.getDisplayFullyQualified(); e1.setDisplayFullyQualified(!fullyQualified); assertTrue("Cloned value changed but should not have: ", copy.getDisplayFullyQualified() == fullyQualified); //$NON-NLS-1$ }
private ElementSymbol resolveElementSymbol(String elementName, MappingSourceNode sourceNode) { try { QueryMetadataInterface metadata = this.planEnv.getGlobalMetadata(); ElementSymbol symbol = sourceNode.getMappedSymbol(new ElementSymbol(elementName)); Object elementID = metadata.getElementID(symbol.getName()); symbol.setMetadataID(elementID); Object groupID = metadata.getGroupIDForElementID(elementID); String groupName = metadata.getFullName(groupID); GroupSymbol groupSymbol = new GroupSymbol(groupName); groupSymbol.setMetadataID(groupID); symbol.setGroupSymbol(groupSymbol); symbol.setType(DataTypeManager.getDataTypeClass(metadata.getElementRuntimeTypeName(symbol.getMetadataID()))); return symbol; } catch (QueryMetadataException e) { throw new TeiidRuntimeException(e); } catch (TeiidComponentException e) { throw new TeiidRuntimeException(e); } }