public static String getShortName(Expression ex) { if (ex instanceof Symbol) { return ((Symbol)ex).getShortName(); } return "expr"; //$NON-NLS-1$ }
public static String getName(Expression ex) { if (ex instanceof Symbol) { return ((Symbol)ex).getName(); } return "expr"; //$NON-NLS-1$ }
public static String getOutputName(Expression ex) { if (ex instanceof Symbol) { return ((Symbol)ex).getOutputName(); } return "expr"; //$NON-NLS-1$ }
private Map<Integer, Object>[] createProjectedSymbolMetadata(Command originalCommand) throws TeiidComponentException { Map<Integer, Object>[] columnMetadata; // Allow command to use temporary metadata TempMetadataStore tempMetadata = originalCommand.getTemporaryMetadata(); if(tempMetadata != null && tempMetadata.getData().size() > 0) { TempMetadataAdapter tempFacade = new TempMetadataAdapter(this.metadata, tempMetadata); this.metadata = tempFacade; } List<Expression> projectedSymbols = originalCommand.getProjectedSymbols(); columnMetadata = new Map[projectedSymbols.size()]; Iterator<Expression> symbolIter = projectedSymbols.iterator(); for(int i=0; symbolIter.hasNext(); i++) { Expression symbol = symbolIter.next(); String shortColumnName = Symbol.getShortName(Symbol.getOutputName(symbol)); if(symbol instanceof AliasSymbol) { symbol = ((AliasSymbol)symbol).getSymbol(); } try { columnMetadata[i] = createColumnMetadata(shortColumnName, symbol); } catch(QueryMetadataException e) { throw new TeiidComponentException(QueryPlugin.Event.TEIID30559, e); } } return columnMetadata; }
expr = SymbolMap.getExpression(list.get(pos).getKey()); } else { name = Symbol.getShortName(element); element = new AliasSymbol(Symbol.getShortName(element), expr); } else { element = expr; ((Symbol)element).setShortName(name);
@Test public void testOrderBySymbolName() throws Exception { String sql = "select e1 from pm1.g1 order by e1"; //$NON-NLS-1$ String expected = "SELECT g_0.e1 AS c_0 FROM pm1.g1 AS g_0 ORDER BY c_0"; //$NON-NLS-1$ Query command = (Query)helpTest(sql, expected, true, false, RealMetadataFactory.example1Cached()); assertEquals(((Symbol)command.getOrderBy().getSortKeys().get(0)).getName(), "c_0"); //$NON-NLS-1$ assertEquals(((Symbol)command.getProjectedSymbols().get(0)).getShortName(), "c_0"); //$NON-NLS-1$ }
/** * @see org.teiid.query.sql.symbol.Symbol#hashCode() */ public int hashCode() { if (expression != null) { return expression.hashCode(); } return super.hashCode(); }
protected void setName(String name) { setShortName(name); }
/** * Construct a symbol with a name. * @param name Name of the symbol * @throws IllegalArgumentException If name is null */ public Symbol(String name) { this.setName(name); }
@Override public boolean equals(Object obj) { if (this.groupSymbol == null) { return super.equals(obj); } if (obj == this) { return true; } if (!(obj instanceof ElementSymbol)) { return false; } ElementSymbol other = (ElementSymbol)obj; if (other.groupSymbol == null) { return super.equals(obj); } return this.groupSymbol.equals(other.groupSymbol) && this.getShortName().equals(other.getShortName()); }
public ResultsMessage createResultsMessage(List<? extends List<?>> batch, List<? extends Expression> columnSymbols) { String[] columnNames = new String[columnSymbols.size()]; String[] dataTypes = new String[columnSymbols.size()]; byte clientSerializationVersion = this.dqpWorkContext.getClientVersion().getClientSerializationVersion(); for(int i=0; i<columnSymbols.size(); i++) { Expression symbol = columnSymbols.get(i); columnNames[i] = Symbol.getShortName(Symbol.getOutputName(symbol)); dataTypes[i] = DataTypeManager.getDataTypeName(symbol.getType()); if (dataTypes[i].equals(DataTypeManager.DefaultDataTypes.GEOMETRY) && !this.dqpWorkContext.getSession().isEmbedded() && clientSerializationVersion < BatchSerializer.VERSION_GEOMETRY) { dataTypes[i] = DataTypeManager.DefaultDataTypes.BLOB; } } ResultsMessage result = new ResultsMessage(batch, columnNames, dataTypes); result.setClientSerializationVersion(clientSerializationVersion); result.setDelayDeserialization(this.requestMsg.isDelaySerialization() && this.originalCommand.returnsResultSet()); return result; }
expr = SymbolMap.getExpression(list.get(pos).getKey()); } else { name = Symbol.getShortName(element); element = new AliasSymbol(Symbol.getShortName(element), expr); } else { element = expr; ((Symbol)element).setShortName(name);
/** * @see org.teiid.query.sql.symbol.Symbol#hashCode() */ public int hashCode() { if (expression != null) { return expression.hashCode(); } return super.hashCode(); }
protected void setName(String name) { setShortName(name); }
/** * Construct a symbol with a name. * @param name Name of the symbol * @throws IllegalArgumentException If name is null */ public Symbol(String name) { this.setName(name); }
@Override public boolean equals(Object obj) { if (this.groupSymbol == null) { return super.equals(obj); } if (obj == this) { return true; } if (!(obj instanceof ElementSymbol)) { return false; } ElementSymbol other = (ElementSymbol)obj; if (other.groupSymbol == null) { return super.equals(obj); } return this.groupSymbol.equals(other.groupSymbol) && this.getShortName().equals(other.getShortName()); }
public String getName() { if (this.name == null) { this.name = Symbol.getShortName(this.ID); } return this.name; }
public org.teiid.language.OrderBy translate(OrderBy orderBy, boolean set) { if(orderBy == null){ return null; } List<OrderByItem> items = orderBy.getOrderByItems(); List<SortSpecification> translatedItems = new ArrayList<SortSpecification>(); for (int i = 0; i < items.size(); i++) { Expression symbol = items.get(i).getSymbol(); Ordering direction = items.get(i).isAscending() ? Ordering.ASC: Ordering.DESC; SortSpecification orderByItem = null; if(!set && (items.get(i).isUnrelated() || symbol instanceof ElementSymbol)){ orderByItem = new SortSpecification(direction, translate(symbol)); } else { orderByItem = new SortSpecification(direction, new ColumnReference(null, Symbol.getShortName(((Symbol)symbol).getOutputName()), null, symbol.getType())); } orderByItem.setNullOrdering(items.get(i).getNullOrdering()); translatedItems.add(orderByItem); } return new org.teiid.language.OrderBy(translatedItems); }
public static String getName(Expression ex) { if (ex instanceof Symbol) { return ((Symbol)ex).getName(); } return "expr"; //$NON-NLS-1$ }
expr = SymbolMap.getExpression(list.get(pos).getKey()); } else { name = Symbol.getShortName(element); element = new AliasSymbol(Symbol.getShortName(element), expr); } else { element = expr; ((Symbol)element).setShortName(name);