public String getFullName(final Object metadataID) throws TeiidComponentException, QueryMetadataException { AbstractMetadataRecord metadataRecord = (AbstractMetadataRecord) metadataID; if (metadataRecord instanceof Column) { Column c = (Column)metadataRecord; if (c.getParent() != null && c.getParent().getParent() instanceof Procedure) { return c.getParent().getParent().getFullName() + '.' + c.getName(); } } return metadataRecord.getFullName(); }
public String getFullName(final Object metadataID) throws TeiidComponentException, QueryMetadataException { AbstractMetadataRecord metadataRecord = (AbstractMetadataRecord) metadataID; if (metadataRecord instanceof Column) { Column c = (Column)metadataRecord; if (c.getParent() != null && c.getParent().getParent() instanceof Procedure) { return c.getParent().getParent().getFullName() + '.' + c.getName(); } } return metadataRecord.getFullName(); }
public String getFullName(final Object metadataID) throws TeiidComponentException, QueryMetadataException { AbstractMetadataRecord metadataRecord = (AbstractMetadataRecord) metadataID; if (metadataRecord instanceof Column) { Column c = (Column)metadataRecord; if (c.getParent() != null && c.getParent().getParent() instanceof Procedure) { return c.getParent().getParent().getFullName() + '.' + c.getName(); } } return metadataRecord.getFullName(); }
void appendColumnReference(StringBuilder queryString, ColumnReference ref) { queryString.append(ref.getMetadataObject().getParent().getSourceName()); queryString.append('.'); queryString.append(ref.getMetadataObject().getSourceName()); }
private Set<String> processSelect(List<Column> projectedColumns) { LinkedHashSet<String> columns = new LinkedHashSet<String>(); for (Column column: projectedColumns) { ODataDocumentNode use = getSchemaElement((Table)column.getParent()); use.appendSelect(column.getName()); } columns.addAll(this.rootDocument.getSelects()); for (ODataDocumentNode use:this.complexTables) { columns.addAll(use.getSelects()); } return columns; }
@Override void appendColumnReference(StringBuilder queryString, ColumnReference ref) { if (isChildToParentJoin() && this.rightTableInJoin.equals(ref.getMetadataObject().getParent()) && this.parentName != null) { //TODO: a self join won't work with this logic queryString.append(parentName); queryString.append('.'); queryString.append(ref.getMetadataObject().getSourceName()); } else { super.appendColumnReference(queryString, ref); } }
private boolean isJoinOrPkColumn(Column column) { boolean joinColumn = Boolean.valueOf(column.getProperty(ODataMetadataProcessor.JOIN_COLUMN, false)); if (!joinColumn) { Table table = (Table)column.getParent(); return (table.getPrimaryKey().getColumnByName(column.getName()) != null); } return false; }
public static boolean isPartOfPrimaryKey(Column column) { KeyRecord pk = ((Table)column.getParent()).getPrimaryKey(); if (pk != null) { for (Column col:pk.getColumns()) { if (col.getName().equals(column.getName())) { if (col.getProperty(ExcelMetadataProcessor.CELL_NUMBER, false).equalsIgnoreCase(ExcelMetadataProcessor.ROW_ID)) { return true; } } } } return false; }
public Object getGroupIDForElementID(final Object elementID) throws TeiidComponentException, QueryMetadataException { if(elementID instanceof Column) { Column columnRecord = (Column) elementID; AbstractMetadataRecord parent = columnRecord.getParent(); if (parent instanceof Table) { return parent; } if (parent instanceof ColumnSet) { parent = ((ColumnSet<?>)parent).getParent(); if (parent instanceof Procedure) { return parent; } } } if(elementID instanceof ProcedureParameter) { ProcedureParameter columnRecord = (ProcedureParameter) elementID; return columnRecord.getParent(); } throw createInvalidRecordTypeException(elementID); }
static Column normalizePseudoColumn(RuntimeMetadata metadata, Column column) throws TranslatorException { if (ODataMetadataProcessor.isPseudo(column)) { Table table = (Table)column.getParent(); ForeignKey fk = table.getForeignKeys().get(0); for (int i = 0; i < fk.getColumns().size(); i++) { Column c = fk.getColumns().get(i); if (c.getName().equals(column.getName())) { String refColumn = fk.getReferenceColumns().get(i); String tableName = fk.getReferenceTableName(); if (tableName.indexOf('.') == -1) { tableName = fk.getReferenceKey().getParent().getFullName(); } Table refTable = metadata.getTable(tableName); return refTable.getColumnByName(refColumn); } } } return column; }
public void addInsertProperty(Column column, String type, Object value) { buildKeyColumns(getRootDocument().getTable(), (Table)column.getParent(), column.getName(), value); addUpdateProperty(column, type, value); }
private boolean isJoinOrPkColumn(Column column) { Table table = (Table)column.getParent(); boolean isKey = (table.getPrimaryKey().getColumnByName(column.getName()) != null); if (!isKey) { for(ForeignKey fk:table.getForeignKeys()) { if (fk.getColumnByName(column.getName()) != null) { isKey = true; } } } return isKey; } }
private List<Object[]> extractValuesFromElement(XmlObject sObject, List<Object[]> result, String sObjectName) throws TranslatorException { Object[] row = new Object[visitor.getSelectSymbolCount()]; for (int j = 0; j < visitor.getSelectSymbolCount(); j++) { //must be a column reference as we won't allow an agg over a join Column element = ((ColumnReference)visitor.getSelectSymbolMetadata(j)).getMetadataObject(); AbstractMetadataRecord table = element.getParent(); if(table.getSourceName().equals(sObjectName)) { XmlObject child = sObject.getChild(element.getSourceName()); Object cell = getCellDatum(element.getSourceName(), element.getJavaType(), child); setElementValueInColumn(j, cell, row); } } result.add(row); return result; }
@Override public void visit(ColumnReference obj) { if (obj.getMetadataObject() != null) { ColumnSet<?> cs = obj.getMetadataObject().getParent(); if (cs.getParent() instanceof Procedure && isTVF((Procedure)cs.getParent())) { this.shortNameOnly = true; super.visit(obj); this.shortNameOnly = false; } else { super.visit(obj); } } else { super.visit(obj); } }
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; }