/** * @see org.teiid.language.QueryExpression#getProjectedQuery() */ public Select getProjectedQuery() { if (leftQuery instanceof Select) { return (Select)leftQuery; } return leftQuery.getProjectedQuery(); }
/** * Get the derived column names. Note this only reports alias names. * Any other names may not be consistent throughout the translation process. * @return a String[] containing the column names * @since 4.3 */ public String[] getColumnNames() { List<DerivedColumn> selectSymbols = getProjectedQuery().getDerivedColumns(); String[] columnNames = new String[selectSymbols.size()]; int symbolIndex = 0; for (DerivedColumn column : selectSymbols) { columnNames[symbolIndex++] = column.getAlias(); } return columnNames; }
/** * Get the column types of the output columns for this query * @return a Class[] containing the column names * @since 4.3 */ public Class<?>[] getColumnTypes() { List<DerivedColumn> selectSymbols = getProjectedQuery().getDerivedColumns(); Class<?>[] columnTypes = new Class[selectSymbols.size()]; int symbolIndex = 0; for (DerivedColumn column : selectSymbols) { columnTypes[symbolIndex++] = column.getExpression().getType(); } return columnTypes; }
@Override public Class<?> getType() { return query.getProjectedQuery().getDerivedColumns().get(0).getExpression().getType(); }
@Override public void visit(WithItem obj) { if (obj.getColumns() != null) { List<ColumnReference> cols = obj.getColumns(); if(!obj.isRecusive()) { //oracle 10 does not support recursion nor a column list obj.setColumns(null); Select select = obj.getSubquery().getProjectedQuery(); List<DerivedColumn> selectClause = select.getDerivedColumns(); for (int i = 0; i < cols.size(); i++) { selectClause.get(i).setAlias(cols.get(i).getName()); } } } super.visit(obj); }
@Override public void visit(SetQuery obj) { for (int i = 0; i < obj.getColumnNames().length; i++) { DerivedColumn leftDerivedColumn = obj.getLeftQuery().getProjectedQuery().getDerivedColumns().get(i); boolean left_i18n = OracleExecutionFactory.this.isNonAscii(leftDerivedColumn.getExpression()); DerivedColumn rightDerivedColumn = obj.getRightQuery().getProjectedQuery().getDerivedColumns().get(i); boolean right_i18n = OracleExecutionFactory.this.isNonAscii(rightDerivedColumn.getExpression()); if (left_i18n ^ right_i18n) { if (!left_i18n) { leftDerivedColumn.setExpression(toNChar(leftDerivedColumn.getExpression())); } else if (!right_i18n) { rightDerivedColumn.setExpression(toNChar(rightDerivedColumn.getExpression())); } } } super.visit(obj); }
for (DerivedColumn selectSymbol : queryCommand.getProjectedQuery().getDerivedColumns()) { if (selectSymbol.getAlias() == null) { allAliased = false;
for (DerivedColumn selectSymbol : queryCommand.getProjectedQuery().getDerivedColumns()) { if (selectSymbol.getAlias() == null) { allAliased = false;
Select select = qe.getProjectedQuery(); List<DerivedColumn> derivedColumns = select.getDerivedColumns(); Map<String, Integer> positions = new HashMap<String, Integer>();
List<DerivedColumn> derivedColumns = withItem.getSubquery().getProjectedQuery().getDerivedColumns(); List<DerivedColumn> derivedColumnsRecurse = ((SetQuery)withItem.getSubquery()).getRightQuery().getProjectedQuery().getDerivedColumns(); for (int i = 0; i < derivedColumns.size(); i++) { String nativeType = null;