private Map<Integer, Object> createAggregateMetadata(String shortColumnName, AggregateSymbol symbol) throws QueryMetadataException, TeiidComponentException { Type function = symbol.getAggregateFunction(); if(function == Type.MIN || function == Type.MAX){ Expression expression = symbol.getArg(0); if(expression instanceof ElementSymbol) { return createColumnMetadata(shortColumnName, expression); } } return createTypedMetadata(shortColumnName, symbol); }
private Map<Integer, Object> createAggregateMetadata(String shortColumnName, AggregateSymbol symbol) throws QueryMetadataException, TeiidComponentException { Type function = symbol.getAggregateFunction(); if(function == Type.MIN || function == Type.MAX){ Expression expression = symbol.getArg(0); if(expression instanceof ElementSymbol) { return createColumnMetadata(shortColumnName, expression); } } return createTypedMetadata(shortColumnName, symbol); }
private Map<Integer, Object> createAggregateMetadata(String shortColumnName, AggregateSymbol symbol) throws QueryMetadataException, TeiidComponentException { Type function = symbol.getAggregateFunction(); if(function == Type.MIN || function == Type.MAX){ Expression expression = symbol.getArg(0); if(expression instanceof ElementSymbol) { return createColumnMetadata(shortColumnName, expression); } } return createTypedMetadata(shortColumnName, symbol); }
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; }
mdp.metadata = metadata; mdp.useJDBCDefaultPrecision = false; Map<Integer, Object> metadataMap = mdp.createColumnMetadata(empty, symbol);
mdp.metadata = metadata; mdp.useJDBCDefaultPrecision = false; Map<Integer, Object> metadataMap = mdp.createColumnMetadata(empty, symbol);
symbol = SymbolMap.getExpression(symbol); try { columnMetadata[i] = createColumnMetadata(shortColumnName, symbol); } catch(QueryMetadataException e) { throw new TeiidComponentException(QueryPlugin.Event.TEIID30559, e);
symbol = SymbolMap.getExpression(symbol); try { columnMetadata[i] = createColumnMetadata(shortColumnName, symbol); } catch(QueryMetadataException e) { throw new TeiidComponentException(QueryPlugin.Event.TEIID30559, e);