public SQLServerObjectReferenceExpr(SQLExpr owner){ if (owner instanceof SQLIdentifierExpr) { this.database = ((SQLIdentifierExpr) owner).getName(); } else if (owner instanceof SQLPropertyExpr) { SQLPropertyExpr propExpr = (SQLPropertyExpr) owner; this.server = ((SQLIdentifierExpr) propExpr.getOwner()).getName(); this.database = propExpr.getName(); } else { throw new IllegalArgumentException(owner.toString()); } }
public void setSchema(String schema) { if (expr instanceof SQLIdentifierExpr) { if (schema == null) { return; } String ident = ((SQLIdentifierExpr) expr).getName(); this.setExpr(new SQLPropertyExpr(schema, ident)); } else if (expr instanceof SQLPropertyExpr) { SQLPropertyExpr propertyExpr = (SQLPropertyExpr) expr; if (schema == null) { setExpr(new SQLIdentifierExpr(propertyExpr.getName())); } else { propertyExpr.setOwner(schema); } } }
@Override public long hashCode64() { if (hashCode64 == 0) { if (server == null) { hashCode64 = new SQLPropertyExpr( new SQLPropertyExpr(server, database) , schema) .hashCode64(); } else { hashCode64 = new SQLPropertyExpr(database, schema) .hashCode64(); } } return hashCode64; }
public boolean visit(SQLPropertyExpr x) { if (x.getOwner() instanceof SQLVariantRefExpr) { SQLVariantRefExpr varExpr = (SQLVariantRefExpr) x.getOwner(); SQLObject parent = x.getParent(); String varName = varExpr.getName(); if (varName.equalsIgnoreCase("@@session") || varName.equalsIgnoreCase("@@global")) { if (!checkVar(x.getParent(), x.getName())) { boolean isTop = WallVisitorUtils.isTopNoneFromSelect(this, x); if (!isTop) { "variable not allow : " + x.getName(), toSQL(x)));
public boolean visit(SQLPropertyExpr x) { if ("ROWNUM".equalsIgnoreCase(x.getName())) { return false; } return super.visit(x); }
private boolean visitOrderBy(SQLPropertyExpr x) { if (isSubQueryOrParamOrVariant(x)) { return false; } String owner = null; SQLTableSource tableSource = x.getResolvedTableSource(); if (tableSource instanceof SQLExprTableSource) { SQLExpr tableSourceExpr = ((SQLExprTableSource) tableSource).getExpr(); if (tableSourceExpr instanceof SQLName) { owner = tableSourceExpr.toString(); } } if (owner == null && x.getOwner() instanceof SQLIdentifierExpr) { owner = ((SQLIdentifierExpr) x.getOwner()).getName(); } if (owner == null) { return false; } if (owner != null) { orderByAddColumn(owner, x.getName(), x); } return false; }
public boolean visit(SQLPropertyExpr x) { Column column = null; String ident = x.getName(); SQLTableSource tableSource = x.getResolvedTableSource(); if (tableSource instanceof SQLExprTableSource) { SQLExpr expr = ((SQLExprTableSource) tableSource).getExpr(); SQLTableSource resolvedTableSource = table.getResolvedTableSource(); if (resolvedTableSource instanceof SQLExprTableSource) { expr = ((SQLExprTableSource) resolvedTableSource).getExpr(); String tableName = table.toString(); column = addColumn(tableName, ident); if (table instanceof SQLPropertyExpr) { SQLPropertyExpr propertyExpr = (SQLPropertyExpr) table; SQLIdentifierExpr owner = (SQLIdentifierExpr) propertyExpr.getOwner(); if (propertyExpr.getResolvedTableSource() != null && propertyExpr.getResolvedTableSource() instanceof SQLExprTableSource) { SQLExpr resolveExpr = ((SQLExprTableSource) propertyExpr.getResolvedTableSource()).getExpr(); if (resolveExpr instanceof SQLName) { tableName = resolveExpr.toString() + "." + propertyExpr.getName(); return false; } else { if (x.getResolvedProcudure() != null) { return false; if (x.getResolvedOwnerObject() instanceof SQLParameter) {
public static void check(WallVisitor visitor, SQLPropertyExpr x) { checkSchema(visitor, x.getOwner()); }
} else if (expr instanceof SQLPropertyExpr) { SQLPropertyExpr table = (SQLPropertyExpr) expr; tableName = table.toString(); } else if (expr instanceof SQLMethodInvokeExpr) { SQLMethodInvokeExpr methodInvokeExpr = (SQLMethodInvokeExpr) expr; SQLIdentifierExpr owner = (SQLIdentifierExpr) propertyExpr.getOwner(); if (propertyExpr.getResolvedTableSource() != null && propertyExpr.getResolvedTableSource() instanceof SQLExprTableSource) { SQLExpr resolveExpr = ((SQLExprTableSource) propertyExpr.getResolvedTableSource()).getExpr(); if (resolveExpr instanceof SQLName) { tableName = resolveExpr.toString() + "." + propertyExpr.getName(); columnTableSource = ((SQLIdentifierExpr) selectItemExpr).getResolvedTableSource(); } else if (selectItemExpr instanceof SQLPropertyExpr) { columnTableSource = ((SQLPropertyExpr) selectItemExpr).getResolvedTableSource(); tableName = ((SQLIdentifierExpr) tableExpr).normalizedName(); } else if (tableExpr instanceof SQLPropertyExpr) { tableName = ((SQLPropertyExpr) tableExpr).normalizedName();
} else if (expr instanceof SQLPropertyExpr) { SQLPropertyExpr propertyExpr = (SQLPropertyExpr) expr; propertyExpr.getOwner().accept(this); print('.'); ident = propertyExpr.getName(); tableName = ((SQLIdentifierExpr) expr).normalizedName(); } else if (expr instanceof SQLPropertyExpr) { tableName = ((SQLPropertyExpr) expr).normalizedName(); } else { tableName = expr.toString(); if (expr instanceof SQLPropertyExpr) { SQLPropertyExpr propertyExpr = (SQLPropertyExpr) expr; String propName = propertyExpr.getName(); destTableName = tableMapping.get(propName); if (destTableName == null propertyExpr.getOwner().accept(this); print('.'); print(destTableName); SQLExpr owner = propertyExpr.getOwner(); final String name = propertyExpr.getName(); if (!this.parameterized) { print0(propertyExpr.getName()); return;
SQLPropertyExpr propertyExpr = (SQLPropertyExpr) expr; SQLExpr owner = propertyExpr.getOwner(); String column = propertyExpr.getName(); SQLObject resolvedOwnerObject = propertyExpr.getResolvedOwnerObject(); if (resolvedOwnerObject instanceof SQLSubqueryTableSource || resolvedOwnerObject instanceof SQLCreateProcedureStatement
@Override public boolean visit(SQLPropertyExpr x) { String name = x.getSimpleName(); SQLIdentifierExpr owner = (SQLIdentifierExpr) x.getOwner(); String simpleName = owner.getSimpleName(); boolean hasQuote = simpleName.charAt(0) == '`'; String tableName = hasQuote ? parseTableName(simpleName) : simpleName; String finalTable = tableMapping.get(tableName); if (finalTable != null) { if (hasQuote) { print0(String.format(PROPERTY_QUOT_NAME_PATTERN, finalTable, name)); } else { print0(String.format(PROPERTY_NAME_PATTERN, finalTable, name)); } } else { print0(String.format(PROPERTY_NAME_PATTERN, simpleName, name)); } return false; }
SQLExpr ownerObj = x.getOwner(); if (ownerObj instanceof SQLIdentifierExpr) { SQLIdentifierExpr owner = (SQLIdentifierExpr) ownerObj; owner_hash = owner.nameHashCode64(); } else if (ownerObj instanceof SQLPropertyExpr) { owner_hash = ((SQLPropertyExpr) ownerObj).hashCode64(); SQLParameter parameter = block.findParameter(owner_hash); if (parameter != null) { x.setResolvedOwnerObject(parameter); return; if (into instanceof SQLSubqueryTableSource && into.aliasHashCode64() == owner_hash) { x.setResolvedOwnerObject(into); || resolvedObject instanceof SQLCreateFunctionStatement || resolvedObject instanceof SQLTableSource) { x.setResolvedOwnerObject(resolvedObject); x.setResolvedTableSource(tableSource); SQLColumnDefinition column = tableSource.findColumn(x.nameHashCode64()); if (column != null) { x.setResolvedColumn(column);
SQLTableSource resolvedTableSource = propertyExpr.getResolvedTableSource(); if (resolvedTableSource instanceof SQLSubqueryTableSource) { SQLSelect select = ((SQLSubqueryTableSource) resolvedTableSource).getSelect(); .nameHashCode64()); if (selectItem != null) { expr = selectItem.getExpr(); SQLSelectItem allColumnSelectItem = queryBlock.findAllColumnSelectItem(); if (allColumnSelectItem != null && allColumnSelectItem.getExpr() instanceof SQLPropertyExpr) { SQLExpr owner = ((SQLPropertyExpr) allColumnSelectItem.getExpr()).getOwner(); if (owner instanceof SQLName) { allColumnTableSource = from.findTableSource(((SQLName) owner).nameHashCode64()); propertyExpr = propertyExpr.clone(); propertyExpr.setResolvedTableSource(allColumnTableSource); propertyExpr.setOwner(((SQLExprTableSource) allColumnTableSource).getExpr().clone()); redirectTableSource = ((SQLIdentifierExpr) tableSourceExpr).getResolvedTableSource(); } else if (tableSourceExpr instanceof SQLPropertyExpr) { redirectTableSource = ((SQLPropertyExpr) tableSourceExpr).getResolvedTableSource(); propertyExpr = propertyExpr.clone(); if (redirectTableSource instanceof SQLExprTableSource) { propertyExpr.setOwner(((SQLExprTableSource) redirectTableSource).getExpr().clone()); propertyExpr.setResolvedTableSource(redirectTableSource); expr = propertyExpr;
protected boolean isSubQueryOrParamOrVariant(SQLPropertyExpr x) { SQLObject resolvedOwnerObject = x.getResolvedOwnerObject(); if (resolvedOwnerObject instanceof SQLSubqueryTableSource || resolvedOwnerObject instanceof SQLWithSubqueryClause.Entry) { return true; } SQLExpr owner = x.getOwner(); if (owner instanceof SQLIdentifierExpr) { if (isSubQueryOrParamOrVariant((SQLIdentifierExpr) owner)) { return true; } } SQLTableSource tableSource = x.getResolvedTableSource(); if (tableSource instanceof SQLExprTableSource) { SQLExprTableSource exprTableSource = (SQLExprTableSource) tableSource; if (exprTableSource.getSchemaObject() != null) { return false; } SQLExpr expr = exprTableSource.getExpr(); if (expr instanceof SQLIdentifierExpr) { return isSubQueryOrParamOrVariant((SQLIdentifierExpr) expr); } if (expr instanceof SQLPropertyExpr) { return isSubQueryOrParamOrVariant((SQLPropertyExpr) expr); } } return false; }
public SQLPropertyExpr clone() { SQLExpr owner_x = null; if (owner != null) { owner_x = owner.clone(); } SQLPropertyExpr x = new SQLPropertyExpr(owner_x, name, nameHashCod64); x.hashCode64 = hashCode64; x.resolvedColumn = resolvedColumn; x.resolvedOwnerObject = resolvedOwnerObject; return x; }
public boolean match(long alias_hash) { long hash = alias_hash(); if (hash == alias_hash) { return true; } if (expr instanceof SQLAllColumnExpr) { SQLTableSource resolvedTableSource = ((SQLAllColumnExpr) expr).getResolvedTableSource(); if (resolvedTableSource != null && resolvedTableSource.findColumn(alias_hash) != null) { return true; } return false; } if (expr instanceof SQLIdentifierExpr) { return ((SQLIdentifierExpr) expr).nameHashCode64() == alias_hash; } if (expr instanceof SQLPropertyExpr) { String ident = ((SQLPropertyExpr) expr).getName(); if ("*".equals(ident)) { SQLTableSource resolvedTableSource = ((SQLPropertyExpr) expr).getResolvedTableSource(); if (resolvedTableSource != null && resolvedTableSource.findColumn(alias_hash) != null) { return true; } return false; } return ((SQLPropertyExpr) expr).nameHashCode64() == alias_hash; } return false; }
visitor.visit(propertyExpr); String ownerName = propertyExpr.getOwnernName(); if (propertyExpr.getName().equals("*")) { if (visitor.isEnabled(SchemaResolveVisitor.Option.ResolveAllColumn)) { SQLTableSource tableSource = x.findTableSource(ownerName); SQLColumnDefinition column = propertyExpr.getResolvedColumn(); if (column != null) { continue; SQLTableSource tableSource = x.findTableSource(propertyExpr.getOwnernName()); if (tableSource != null) { column = tableSource.findColumn(propertyExpr.nameHashCode64()); if (column != null) { propertyExpr.setResolvedColumn(column); orderByItemIdentExpr.setResolvedColumn(((SQLIdentifierExpr) selectItemExpr).getResolvedColumn()); } else if (selectItemExpr instanceof SQLPropertyExpr) { orderByItemIdentExpr.setResolvedTableSource(((SQLPropertyExpr) selectItemExpr).getResolvedTableSource()); orderByItemIdentExpr.setResolvedColumn(((SQLPropertyExpr) selectItemExpr).getResolvedColumn());
public boolean apply(SQLCommentStatement x) { SQLName on = x.getOn().getName(); SQLExpr comment = x.getComment(); if (comment == null) { return false; } SQLCommentStatement.Type type = x.getType(); if (type == SQLCommentStatement.Type.TABLE) { if (!SQLUtils.nameEquals(getName(), on)) { return false; } setComment(comment.clone()); return true; } else if (type == SQLCommentStatement.Type.COLUMN) { SQLPropertyExpr propertyExpr = (SQLPropertyExpr) on; if (!SQLUtils.nameEquals(getName(), (SQLName) propertyExpr.getOwner())) { return false; } SQLColumnDefinition column = this.findColumn( propertyExpr.nameHashCode64()); if (column != null) { column.setComment(comment.clone()); } return true; } return false; }
SQLExpr tableExpr = ((SQLExprTableSource) table).getExpr(); if (tableExpr instanceof SQLPropertyExpr && ((SQLPropertyExpr) tableExpr).getName().equals("*")) { String alias = ((SQLPropertyExpr) tableExpr).getOwnernName(); SQLTableSource refTableSource = from.findTableSource(alias); if (refTableSource != null) { ((SQLPropertyExpr) tableExpr).setResolvedTableSource(refTableSource);