public String getColumnName(ColumnReference obj) { String elemShortName = null; AbstractMetadataRecord elementID = obj.getMetadataObject(); if(elementID != null) { elemShortName = getRecordName(elementID); } else { elemShortName = obj.getName(); } return elemShortName; }
private boolean includeInPullCriteria(Expression expr) throws TranslatorException { if (!this.mongoDoc.isMerged()) { return false; } Collection<ColumnReference> columns = CollectorVisitor.collectElements(expr); for (ColumnReference column:columns) { if (this.mongoDoc.isPartOfForeignKey(column.getName())) { return false; } } return true; }
@Override public void visit(ColumnReference column) { AbstractMetadataRecord record = column.getMetadataObject(); if (record != null) { String name = record.getProperty(JPAMetadataProcessor.KEY_ASSOSIATED_WITH_FOREIGN_TABLE, false); if (name == null) { buffer.append(this.visitor.correlatedName.get(column.getTable().getMetadataObject().getName())).append(Tokens.DOT).append(column.getMetadataObject().getName()); } else { buffer.append(this.visitor.correlatedName.get(name)).append(Tokens.DOT).append(column.getMetadataObject().getName()); } } else { buffer.append(column.getName()); } } }
private void validateOrderBy(Select obj) { Collection<ColumnReference> whereColumns = CollectorVisitor.collectElements(obj.getWhere()); for (SortSpecification sort:obj.getOrderBy().getSortSpecifications()) { boolean matched = false; for (ColumnReference where:whereColumns) { ColumnReference col = (ColumnReference)sort.getExpression(); if (col.getName().equals(where.getName())) { matched = true; } } if (!matched) { this.exceptions.add(new TranslatorException(SimpleDBPlugin.Event.TEIID24005, SimpleDBPlugin.Util.gs(SimpleDBPlugin.Event.TEIID24005))); break; } } }
@Override public void visit(ColumnReference column) { Column record = column.getMetadataObject(); if (record != null) { String name = record.getProperty(JPAMetadataProcessor.KEY_ASSOSIATED_WITH_FOREIGN_TABLE, false); if (name == null) { buffer.append(column.getTable().getCorrelationName()).append(Tokens.DOT) .append(record.getSourceName()); } else { String attrName = record.getProperty(JPAMetadataProcessor.RELATION_PROPERTY, false); String attrColumnName = record.getProperty(JPAMetadataProcessor.RELATION_KEY, false); String groupName = column.getTable().getCorrelationName() + Tokens.DOT + attrName; String correlationName = this.visitor.implicitGroups.get(groupName).getCorrelationName(); buffer.append(correlationName).append(Tokens.DOT).append(attrColumnName); } } else { buffer.append(column.getName()); } }
private Object getRowValue(Expression obj) throws TranslatorException { if (!(obj instanceof ColumnReference)) { throw new TranslatorException(MongoDBPlugin.Util.gs(MongoDBPlugin.Event.TEIID18017)); } ColumnReference column = (ColumnReference)obj; Object value = null; if (MongoDBSelectVisitor.isPartOfPrimaryKey(column.getTable().getMetadataObject(), column.getName())) { // this is true one to many case value = this.row.get("_id"); //$NON-NLS-1$ if (value == null) { value = getValueFromRowInfo(column, value); } } if (value == null && MongoDBSelectVisitor.isPartOfForeignKey(column.getTable().getMetadataObject(), column.getName())) { value = getValueFromRowInfo(column, value); } if (value == null) { value = this.row.get(column.getName()); } if (value instanceof DBRef) { value = ((DBRef)value).getId(); } if (value instanceof DBObject) { value = ((DBObject) value).get(column.getName()); } return this.executionFactory.retrieveValue(value, column.getType(), this.mongoDB, column.getName(), column.getName()); }
public String getCreateTempTableSQL(String name, List<ColumnReference> cols, boolean transactional) { SQLDialect d = getDialect(); StringBuilder sb = new StringBuilder(getCreateTemporaryTableString(transactional)).append(" "); //$NON-NLS-1$ sb.append(name).append(" ("); //$NON-NLS-1$ for (Iterator<ColumnReference> iter = cols.iterator(); iter.hasNext();) { ColumnReference col = iter.next(); sb.append(col.getName()); sb.append(" "); //$NON-NLS-1$ Integer defaultValue = JDBCSQLTypeInfo.getDefaultPrecision(col.getType()); int precision = defaultValue == null?255:defaultValue; int scale = col.getType() == TypeFacility.RUNTIME_TYPES.BIG_DECIMAL?2:0; long length = precision; if (col.getMetadataObject() != null) { precision = col.getMetadataObject().getPrecision(); scale = col.getMetadataObject().getScale(); length = col.getMetadataObject().getLength(); } sb.append(d.getTypeName(TypeFacility.getSQLTypeFromRuntimeType(col.getType()), length, precision, scale)); //sb.append(" NOT NULL"); -- needed if we will add an index if (iter.hasNext()) { sb.append(", "); //$NON-NLS-1$ } } sb.append(") "); if (getCreateTemporaryTablePostfix(transactional) != null) { sb.append(getCreateTemporaryTablePostfix(transactional)); } String sql = sb.toString(); return sql; }
@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); }
elemShortName = getName(elementID); } else { elemShortName = obj.getName();
public void testGetName() throws Exception { Object metadataID = TstLanguageBridgeFactory.metadata.getElementID("pm1.g1.e1"); //$NON-NLS-1$ assertEquals("e1", example("pm1.g1", "e1", metadataID).getName()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ }
@Override public void visit(Comparison obj) { // this for $cond in the select statement, and formatting of command for $cond vs $match is different if (this.processingDerivedColumn) { visitDerivedExpression(obj); return; } // this for the normal where clause ColumnDetail leftExprDetails = getExpressionAlias(obj.getLeftExpression()); append(obj.getRightExpression()); Object rightExpr = this.onGoingExpression.pop(); if (this.expressionMap.get(rightExpr) != null) { rightExpr = this.expressionMap.get(rightExpr).getProjectedName(); } QueryBuilder query = leftExprDetails.getQueryBuilder(); rightExpr = checkAndConvertToObjectId(obj.getLeftExpression(), obj.getRightExpression(), rightExpr); buildComparisionQuery(obj, rightExpr, query); if (leftExprDetails.partOfProject || obj.getLeftExpression() instanceof ColumnReference) { this.onGoingExpression.push(query.get()); } else { this.onGoingExpression.push(buildFunctionQuery(obj, (BasicDBObject)leftExprDetails.expression, rightExpr)); } if (obj.getLeftExpression() instanceof ColumnReference) { ColumnReference column = (ColumnReference)obj.getLeftExpression(); this.mongoDoc.updateReferenceColumnValue(column.getTable().getName(), column.getName(), rightExpr); } }
this.mongoDoc.updateReferenceColumnValue(column.getTable().getName(), column.getName(), rightExpr);