public SQLSelectItem findAllColumnSelectItem() { SQLSelectItem allColumnItem = null; for (SQLSelectItem item : this.selectList) { SQLExpr expr = item.getExpr(); boolean allColumn = expr instanceof SQLAllColumnExpr || (expr instanceof SQLPropertyExpr && ((SQLPropertyExpr) expr).getName().equals("*")); if (allColumnItem != null) { return null; // duplicateAllColumn } allColumnItem = item; } return allColumnItem; }
public boolean visit(SQLPropertyExpr x) { if ("ROWNUM".equalsIgnoreCase(x.getName())) { return false; } return super.visit(x); }
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 String computeAlias() { String alias = null; if (name instanceof SQLIdentifierExpr) { alias = ((SQLIdentifierExpr) name).getName(); } else if (name instanceof SQLPropertyExpr) { alias = ((SQLPropertyExpr) name).getName(); } return SQLUtils.normalize(alias); }
public String getTableName() { if (tableSource == null) { return null; } SQLExpr expr = ((SQLExprTableSource) tableSource).getExpr(); if (expr instanceof SQLIdentifierExpr) { return ((SQLIdentifierExpr) expr).getName(); } else if (expr instanceof SQLPropertyExpr) { return ((SQLPropertyExpr) expr).getName(); } return null; }
public String getTableName() { if (table instanceof SQLExprTableSource) { SQLExpr expr = ((SQLExprTableSource) table).getExpr(); if (expr instanceof SQLIdentifierExpr) { return ((SQLIdentifierExpr) expr).getName(); } else if (expr instanceof SQLPropertyExpr) { return ((SQLPropertyExpr) expr).getName(); } } return null; }
public void setTable(SQLName table) { if (table instanceof SQLPropertyExpr) { SQLPropertyExpr propExpr = (SQLPropertyExpr) table; this.setDatabase((SQLName) propExpr.getOwner()); this.table = new SQLIdentifierExpr(propExpr.getName()); return; } this.table = table; }
public boolean selectItemHasAllColumn(boolean recursive) { for (SQLSelectItem item : this.selectList) { SQLExpr expr = item.getExpr(); boolean allColumn = expr instanceof SQLAllColumnExpr || (expr instanceof SQLPropertyExpr && ((SQLPropertyExpr) expr).getName().equals("*")); if (allColumn) { if (recursive && from instanceof SQLSubqueryTableSource) { SQLSelect subSelect = ((SQLSubqueryTableSource) from).select; SQLSelectQueryBlock queryBlock = subSelect.getQueryBlock(); if (queryBlock != null) { return queryBlock.selectItemHasAllColumn(); } } return true; } } return false; }
public void setTable(SQLName table) { if (table instanceof SQLPropertyExpr) { SQLPropertyExpr propExpr = (SQLPropertyExpr) table; this.setDatabase((SQLName) propExpr.getOwner()); this.table = new SQLIdentifierExpr(propExpr.getName()); return; } this.table = table; }
public void setTable(SQLName table) { if (table instanceof SQLPropertyExpr) { SQLPropertyExpr propExpr = (SQLPropertyExpr) table; this.setDatabase((SQLName) propExpr.getOwner()); this.table = new SQLIdentifierExpr(propExpr.getName()); return; } this.table = table; }
public String computeAlias() { String alias = this.getAlias(); if (alias == null) { if (expr instanceof SQLIdentifierExpr) { alias = ((SQLIdentifierExpr) expr).getName(); } else if (expr instanceof SQLPropertyExpr) { alias = ((SQLPropertyExpr) expr).getName(); } } return SQLUtils.normalize(alias); }
@Override public List<String> getUpdateColumns() { List<SQLUpdateSetItem> updateSetItems = ast.getItems(); List<String> list = new ArrayList<>(updateSetItems.size()); for (SQLUpdateSetItem updateSetItem : updateSetItems) { SQLExpr expr = updateSetItem.getColumn(); if (expr instanceof SQLIdentifierExpr) { list.add(((SQLIdentifierExpr) expr).getName()); } else if (expr instanceof SQLPropertyExpr){ // This is alias case, like UPDATE xxx_tbl a SET a.name = ? WHERE a.id = ? SQLExpr owner = ((SQLPropertyExpr) expr).getOwner(); if (owner instanceof SQLIdentifierExpr) { list.add((((SQLIdentifierExpr)owner).getName() + "." + ((SQLPropertyExpr) expr).getName())); } } else { throw new SQLParsingException("Unknown SQLExpr: " + expr.getClass() + " " + expr); } } return list; }
print0(x.getName());
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); } } }
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 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; }
public void simplify() { SQLName name = getName(); if (name instanceof SQLPropertyExpr) { String tableName = ((SQLPropertyExpr) name).getName(); tableName = SQLUtils.normalize(tableName); String normalized = SQLUtils.normalize(tableName, dbType); if (tableName != normalized) { this.setName(normalized); name = getName(); } } if (name instanceof SQLIdentifierExpr) { SQLIdentifierExpr identExpr = (SQLIdentifierExpr) name; String tableName = identExpr.getName(); String normalized = SQLUtils.normalize(tableName, dbType); if (normalized != tableName) { setName(normalized); } } for (SQLTableElement element : this.tableElementList) { if (element instanceof SQLColumnDefinition) { SQLColumnDefinition column = (SQLColumnDefinition) element; column.simplify(); } else if (element instanceof SQLConstraint) { ((SQLConstraint) element).simplify(); } } }
SQLExpr tableExpr = ((SQLExprTableSource) table).getExpr(); if (tableExpr instanceof SQLPropertyExpr && ((SQLPropertyExpr) tableExpr).getName().equals("*")) { String alias = ((SQLPropertyExpr) tableExpr).getOwnernName(); SQLTableSource refTableSource = from.findTableSource(alias);
@Override public boolean visit(SQLCommentStatement x) { SQLCommentStatement.Type type = x.getType(); SQLExprTableSource on = x.getOn(); if (type == SQLCommentStatement.Type.TABLE) { print0(ucase ? "ALTER TABLE " : "alter table "); on.accept(this); print0(ucase ? " COMMENT = " : " comment = "); x.getComment().accept(this); } else { SQLPropertyExpr propertyExpr = (SQLPropertyExpr) on.getExpr(); SQLExpr table = propertyExpr.getOwner(); String column = propertyExpr.getName(); print0(ucase ? "ALTER TABLE " : "alter table "); printTableSourceExpr(table); print0(ucase ? " MODIFY COLUMN " : " modify column "); print(column); print0(ucase ? " COMMENT " : " comment "); x.getComment().accept(this); } return false; }