public static String getOutputName(Expression ex) { if (ex instanceof Symbol) { return ((Symbol)ex).getOutputName(); } return "expr"; //$NON-NLS-1$ }
public static String getOutputName(Expression ex) { if (ex instanceof Symbol) { return ((Symbol)ex).getOutputName(); } 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; }
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; }
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 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 (!this.dqpWorkContext.getSession().isEmbedded()) { dataTypes[i] = BatchSerializer.getClientSafeType(dataTypes[i], clientSerializationVersion); } } ResultsMessage result = new ResultsMessage(batch, columnNames, dataTypes); result.setClientSerializationVersion(clientSerializationVersion); result.setDelayDeserialization(this.requestMsg.isDelaySerialization() && this.originalCommand.returnsResultSet()); return result; }
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 (!this.dqpWorkContext.getSession().isEmbedded()) { dataTypes[i] = BatchSerializer.getClientSafeType(dataTypes[i], clientSerializationVersion); } } ResultsMessage result = new ResultsMessage(batch, columnNames, dataTypes); result.setClientSerializationVersion(clientSerializationVersion); result.setDelayDeserialization(this.requestMsg.isDelaySerialization() && this.originalCommand.returnsResultSet()); return result; }
orderByItem = new SortSpecification(direction, translate(symbol)); } else { orderByItem = new SortSpecification(direction, new ColumnReference(null, Symbol.getShortName(((Symbol)symbol).getOutputName()), null, symbol.getType()));
orderByItem = new SortSpecification(direction, translate(symbol)); } else { orderByItem = new SortSpecification(direction, new ColumnReference(null, Symbol.getShortName(((Symbol)symbol).getOutputName()), null, symbol.getType()));
for(int i=0; symbolIter.hasNext(); i++) { Expression symbol = symbolIter.next(); String shortColumnName = Symbol.getShortName(Symbol.getOutputName(symbol)); symbol = SymbolMap.getExpression(symbol); try {
for(int i=0; symbolIter.hasNext(); i++) { Expression symbol = symbolIter.next(); String shortColumnName = Symbol.getShortName(Symbol.getOutputName(symbol)); symbol = SymbolMap.getExpression(symbol); try {