private static RelationID getRelationIDFromString(String name, QuotedIDFactory idfac) { String[] names = name.split("\\."); if (names.length == 1) return idfac.createRelationID(null, name); else return idfac.createRelationID(names[0], names[1]); } }
QuotedID attribute = idfac.createAttributeID(columnName); attributes.add(attribute);
/** * creates attribute ID from the database record (as though it is a quoted name) * * @param s * @return */ public static QuotedID createIdFromDatabaseRecord(QuotedIDFactory idfac, String s) { // ID is as though it is quoted -- DB stores names as is return new QuotedID(s, idfac.getIDQuotationString()); }
String viewname = sqladapter.nameView(VIEW_PREFIX, safePredicateName, VIEW_ANS_SUFFIX, alreadyAllocatedViewNames); RelationID viewId = idFactory.createRelationID(null, viewname); idFactory.createAttributeID(sqladapter.sqlQuote("v" + i + TYPE_SUFFIX)))); columnIds.add(new QualifiedAttributeID(viewId, idFactory.createAttributeID(sqladapter.sqlQuote("v" + i + LANG_SUFFIX)))); columnIds.add(new QualifiedAttributeID(viewId, idFactory.createAttributeID(sqladapter.sqlQuote("v" + i))));
@Override public void visit(Column expression) { QuotedID column = idfac.createAttributeID(expression.getColumnName()); Table table = expression.getTable(); RelationID relation = (table != null) && (table.getName() != null) ? idfac.createRelationID(table.getSchemaName(), table.getName()) : null; QualifiedAttributeID qa = new QualifiedAttributeID(relation, column); Term var = attributes.get(qa); if (var == null) { // can be // - a CONSTANT or // - a PSEUDO-COLUMN like ROWID, ROWNUM or // - a FUNCTION without arguments like USER, CURRENT_DATE if (column.equals(idfac.createAttributeID("true"))) result = termFactory.getBooleanConstant(true); else if (column.equals(idfac.createAttributeID("false"))) result = termFactory.getBooleanConstant(false); else throw new UnsupportedSelectQueryRuntimeException("Unable to find attribute name ", expression); } else { // if it is an attribute name (qualified or not) result = var; } }
private static RelationID getRelationIDFromString(String name, QuotedIDFactory idfac) { String[] names = name.split("\\."); if (names.length == 1) return idfac.createRelationID(null, name); else return idfac.createRelationID(names[0], names[1]); } }
@Override public void visit(Column expression) { QuotedID column = idfac.createAttributeID(expression.getColumnName()); Table table = expression.getTable(); RelationID relation = (table != null) && (table.getName() != null) ? idfac.createRelationID(table.getSchemaName(), table.getName()) : null; QualifiedAttributeID qa = new QualifiedAttributeID(relation, column); Term var = attributes.get(qa); if (var == null) { // can be // - a CONSTANT or // - a PSEUDO-COLUMN like ROWID, ROWNUM or // - a FUNCTION without arguments like USER, CURRENT_DATE if (column.equals(idfac.createAttributeID("true"))) result = TERM_FACTORY.getBooleanConstant(true); else if (column.equals(idfac.createAttributeID("false"))) result = TERM_FACTORY.getBooleanConstant(false); else throw new UnsupportedSelectQueryRuntimeException("Unable to find attribute name ", expression); } else { // if it is an attribute name (qualified or not) result = var; } }
QuotedID attribute = idfac.createAttributeID(columnName); attributes.add(attribute);
/** * creates attribute ID from the database record (as though it is a quoted name) * * @param s * @return */ public static QuotedID createIdFromDatabaseRecord(QuotedIDFactory idfac, String s) { // ID is as though it is quoted -- DB stores names as is return new QuotedID(s, idfac.getIDQuotationString()); }
private RelationID createAlias(String predicateName, String suffix, Collection<RelationID> usedAliases) { // escapes the predicate name String safePredicateName = predicateName .replace('.', '_') .replace(':', '_') .replace('/', '_') .replace(' ', '_'); String alias = sqladapter.nameView(VIEW_PREFIX, safePredicateName, suffix, usedAliases); return idFactory.createRelationID(null, alias); }
@Override public void visit(SelectExpressionItem selectExpressionItem) { Expression expr = selectExpressionItem.getExpression(); QuotedID name = getSelectItemAliasedId(selectExpressionItem); final Term var; if (expr instanceof Column) { Column column = (Column) expr; QuotedID columnId = idfac.createAttributeID(column.getColumnName()); Table table = column.getTable(); RelationID tableId = (table == null || table.getName() == null) ? null : idfac.createRelationID(table.getSchemaName(), table.getName()); QualifiedAttributeID attr = new QualifiedAttributeID(tableId, columnId); var = attributes.get(attr); if (var == null) throw new InvalidSelectQueryRuntimeException("Column not found", selectExpressionItem); } else { // whether the complex expression has an alias already been checked var = createVariable(name); } map = ImmutableMap.of(new QualifiedAttributeID(null, name), var); } }
public QuotedID getSelectItemAliasedId(SelectExpressionItem si) { if (si.getAlias() != null && si.getAlias().getName() != null) { return idfac.createAttributeID(si.getAlias().getName()); } else if (si.getExpression() instanceof Column) { return idfac.createAttributeID(((Column)si.getExpression()).getColumnName()); } else throw new InvalidSelectQueryRuntimeException("Complex expression in SELECT must have an alias", si); }
private RelationID createAlias(String predicateName, String suffix, Collection<RelationID> usedAliases) { // escapes the predicate name String safePredicateName = predicateName .replace('.', '_') .replace(':', '_') .replace('/', '_') .replace(' ', '_'); String alias = sqladapter.nameView(VIEW_PREFIX, safePredicateName, suffix, usedAliases); return idFactory.createRelationID(null, alias); }
@Override public void visit(SelectExpressionItem selectExpressionItem) { Expression expr = selectExpressionItem.getExpression(); QuotedID name = getSelectItemAliasedId(selectExpressionItem); final Term var; if (expr instanceof Column) { Column column = (Column) expr; QuotedID columnId = idfac.createAttributeID(column.getColumnName()); Table table = column.getTable(); RelationID tableId = (table == null || table.getName() == null) ? null : idfac.createRelationID(table.getSchemaName(), table.getName()); QualifiedAttributeID attr = new QualifiedAttributeID(tableId, columnId); var = attributes.get(attr); if (var == null) throw new InvalidSelectQueryRuntimeException("Column not found", selectExpressionItem); } else { // whether the complex expression has an alias already been checked var = createVariable(name); } map = ImmutableMap.of(new QualifiedAttributeID(null, name), var); } }
public QuotedID getSelectItemAliasedId(SelectExpressionItem si) { if (si.getAlias() != null && si.getAlias().getName() != null) { return idfac.createAttributeID(si.getAlias().getName()); } else if (si.getExpression() instanceof Column) { return idfac.createAttributeID(((Column)si.getExpression()).getColumnName()); } else throw new InvalidSelectQueryRuntimeException("Complex expression in SELECT must have an alias", si); }
@Override public void visit(Table table) { if (!withTCEs.contains(table.getFullyQualifiedName().toLowerCase())) { RelationID relationId = idfac.createRelationID(table.getSchemaName(), table.getName()); relations.add(relationId); } }
if (expr instanceof Column) { Column column = (Column) expr; QuotedID id = idfac.createAttributeID(column.getColumnName()); Table table = column.getTable(); QualifiedAttributeID attr = (table == null || table.getName() == null) ? new QualifiedAttributeID(null, id) : new QualifiedAttributeID(idfac.createRelationID(table.getSchemaName(), table.getName()), id); QuotedID name = (columnAlias == null || columnAlias.getName() == null) ? id : idfac.createAttributeID(columnAlias.getName()); throw new InvalidSelectQueryRuntimeException("Complex expression in SELECT must have an alias", selectExpressionItem); QuotedID name = idfac.createAttributeID(columnAlias.getName());
for (String alias : var.columnAliases) { columnsBuilder.add(new QualifiedAttributeID(subQueryAlias, metadata.getQuotedIDFactory().createAttributeID(alias)));
@Override public void visit(Table table) { if (!withTCEs.contains(table.getFullyQualifiedName().toLowerCase())) { RelationID relationId = idfac.createRelationID(table.getSchemaName(), table.getName()); relations.add(relationId); } }
if (expr instanceof Column) { Column column = (Column) expr; QuotedID id = idfac.createAttributeID(column.getColumnName()); Table table = column.getTable(); QualifiedAttributeID attr = (table == null || table.getName() == null) ? new QualifiedAttributeID(null, id) : new QualifiedAttributeID(idfac.createRelationID(table.getSchemaName(), table.getName()), id); QuotedID name = (columnAlias == null || columnAlias.getName() == null) ? id : idfac.createAttributeID(columnAlias.getName()); throw new InvalidSelectQueryRuntimeException("Complex expression in SELECT must have an alias", selectExpressionItem); QuotedID name = idfac.createAttributeID(columnAlias.getName());