public ColumnReference createColumnReference(String name, NamedTable group, Column metadataReference, Class<?> type) { return new ColumnReference(group, name, metadataReference, type); }
public ColumnReference createElement(NamedTable group, String name) { return new ColumnReference(group, name, null, String.class); }
private ColumnReference createTempColumn(int i, Expression ex) { if (ex instanceof ColumnReference) { ColumnReference left = (ColumnReference)ex; return new ColumnReference(null, COL_PREFIX + i, left.getMetadataObject(), ex.getType()); } //just an expression - there's a lot of metadata lost here return new ColumnReference(null, COL_PREFIX + i, null, ex.getType()); }
public static DerivedColumn example(String symbolName, String alias) throws Exception { DerivedColumn selectSymbol = new DerivedColumn(alias, new ColumnReference(null, symbolName, null, DataTypeManager.DefaultDataClasses.INTEGER)); return selectSymbol; }
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 SetQuery example3() throws Exception { SetQuery union = example2(); List<SortSpecification> items = new ArrayList<SortSpecification>(); items.add(new SortSpecification(Ordering.ASC, new ColumnReference(null, "nugent", null, DataTypeManager.DefaultDataClasses.STRING))); //$NON-NLS-1$ OrderBy orderBy = new OrderBy(items); union.setOrderBy(orderBy); return union; }
Array array = (Array)ex; for (Expression expr : array.getExpressions()) { conditions.add(new Comparison(expr, new ColumnReference(table, COL_PREFIX+i++, null, expr.getType()), Comparison.Operator.EQ)); conditions.add(new Comparison(ex, new ColumnReference(table, COL_PREFIX+i++, null, ex.getType()), Comparison.Operator.EQ));
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 (Column c : pk.getColumns()) { if (!columns.contains(c)) { ColumnReference cr = new ColumnReference(update.getTable(), c.getName(), c, c.getJavaType()); select.add(new DerivedColumn(null, cr)); cols.add(cr);
public static SetQuery example2() throws Exception { NamedTable group = new NamedTable("ted", null, null); //$NON-NLS-1$ ColumnReference element = new ColumnReference(group, "nugent", null, String.class); //$NON-NLS-1$ DerivedColumn symbol = new DerivedColumn(null,element); List symbols = new ArrayList(); ColumnReference element2 = new ColumnReference(group2, "barry", null, String.class); //$NON-NLS-1$ DerivedColumn symbol2 = new DerivedColumn(null, element2); List symbols2 = new ArrayList();
@Override public List<?> translateCommand(Command command, ExecutionContext context) { if (command instanceof SetQuery) { SetQuery set = (SetQuery)command; if (!set.isAll()) { //distinct is not supported, convert to an inline view and add distinct Select s = new Select(); s.setDistinct(true); s.setDerivedColumns(new ArrayList<DerivedColumn>()); s.setOrderBy(set.getOrderBy()); for (DerivedColumn dc : set.getProjectedQuery().getDerivedColumns()) { Assertion.assertTrue(dc.getAlias() != null); //it's expected that the columns will be aliases ColumnReference cr = new ColumnReference(null, dc.getAlias(), null, dc.getExpression().getType()); s.getDerivedColumns().add(new DerivedColumn(null, cr)); } set.setOrderBy(null); s.setLimit(set.getLimit()); set.setLimit(null); set.setAll(true); s.setFrom(Arrays.asList((TableReference)new DerivedTable(set, "x"))); //$NON-NLS-1$ return Arrays.asList(s); } } return super.translateCommand(command, context); }
ColumnReference translate(ElementSymbol symbol) { ColumnReference element = new ColumnReference(translate(symbol.getGroupSymbol()), Symbol.getShortName(symbol.getOutputName()), null, symbol.getType()); if (element.getTable().getMetadataObject() == null) { //handle procedure resultset columns if (symbol.getMetadataID() instanceof TempMetadataID) { TempMetadataID tid = (TempMetadataID)symbol.getMetadataID(); if (tid.getOriginalMetadataID() instanceof Column && !(((Column)tid.getOriginalMetadataID()).getParent() instanceof Table)) { element.setMetadataObject(metadataFactory.getElement(tid.getOriginalMetadataID())); } } return element; } Object mid = symbol.getMetadataID(); element.setMetadataObject(metadataFactory.getElement(mid)); return element; }
ColumnReference translate(ElementSymbol symbol) { ColumnReference element = new ColumnReference(translate(symbol.getGroupSymbol()), Symbol.getShortName(symbol.getOutputName()), null, symbol.getType()); if (element.getTable().getMetadataObject() == null) { //handle procedure resultset columns if (symbol.getMetadataID() instanceof TempMetadataID) { TempMetadataID tid = (TempMetadataID)symbol.getMetadataID(); if (tid.getOriginalMetadataID() instanceof Column && !(((Column)tid.getOriginalMetadataID()).getParent() instanceof Table)) { element.setMetadataObject(metadataFactory.getElement(tid.getOriginalMetadataID())); } } return element; } Object mid = symbol.getMetadataID(); element.setMetadataObject(metadataFactory.getElement(mid)); return element; }
ColumnReference translate(ElementSymbol symbol) { ColumnReference element = new ColumnReference(translate(symbol.getGroupSymbol()), Symbol.getShortName(symbol.getOutputName()), null, symbol.getType()); if (element.getTable().getMetadataObject() == null) { //handle procedure resultset columns if (symbol.getMetadataID() instanceof TempMetadataID) { TempMetadataID tid = (TempMetadataID)symbol.getMetadataID(); if (tid.getOriginalMetadataID() instanceof Column && !(((Column)tid.getOriginalMetadataID()).getParent() instanceof Table)) { element.setMetadataObject(metadataFactory.getElement(tid.getOriginalMetadataID())); } } return element; } Object mid = symbol.getMetadataID(); element.setMetadataObject(metadataFactory.getElement(mid)); return element; }