public boolean matchOwner(String alias) { if (owner instanceof SQLIdentifierExpr) { return ((SQLIdentifierExpr) owner).getName().equalsIgnoreCase(alias); } return false; }
public boolean visit(SQLExprTableSource x) { SQLExpr expr = x.getExpr(); if (expr instanceof SQLIdentifierExpr) { SQLIdentifierExpr identifierExpr = (SQLIdentifierExpr) expr; String ident = identifierExpr.getName(); String mappingIdent = mappings.get(ident); if (mappingIdent != null) { x.setExpr(new SQLIdentifierExpr(mappingIdent)); } } return false; }
public void setOrderingColumn(SQLIdentifierExpr orderingColumn) { if (orderingColumn != null) { orderingColumn.setParent(this); } this.orderingColumn = orderingColumn; }
public boolean visit(SQLIdentifierExpr x) { String name = x.getName(); if ("+".equalsIgnoreCase(name)) { return false; } long hashCode64 = x.hashCode64(); if (hashCode64 == FnvHash.Constants.ROWNUM || hashCode64 == FnvHash.Constants.SYSDATE || hashCode64 == FnvHash.Constants.LEVEL || hashCode64 == FnvHash.Constants.SQLCODE) { return false; } if (hashCode64 == FnvHash.Constants.ISOPEN && x.getParent() instanceof SQLBinaryOpExpr && ((SQLBinaryOpExpr) x.getParent()).getOperator() == SQLBinaryOperator.Modulus) { return false; } return super.visit(x); }
public SQLIdentifierExpr clone() { SQLIdentifierExpr x = new SQLIdentifierExpr(this.name, hashCode64); x.resolvedColumn = resolvedColumn; x.resolvedOwnerObject = resolvedOwnerObject; return x; }
private void renderTB(MySqlSelectQueryBlock x) { if (x.getFrom() instanceof SQLExprTableSource) { SQLExprTableSource from = (SQLExprTableSource) x.getFrom(); if (from.getExpr() instanceof SQLIdentifierExpr) { SQLIdentifierExpr expr = (SQLIdentifierExpr) from.getExpr(); if (tableRules.containsKey(expr.getName())) { expr.setName(renderTB(expr.getName(), tableRules.get(expr.getName()))); // expr.setName(expr.getName()); } } } }
SQLIdentifierExpr maxValue = new SQLIdentifierExpr(lexer.stringVal()); lexer.nextToken(); maxValue.setParent(values); values.addItem(maxValue); } else {
case "TIMESTAMPADD": SQLIdentifierExpr addUnit = (SQLIdentifierExpr) x.getParameters().get(0); item = new ItemDateAddInterval(args.get(2), args.get(1), SQLIntervalUnit.valueOf(addUnit.getSimpleName()), false); break; case "TIMESTAMPDIFF": SQLIdentifierExpr diffUnit = (SQLIdentifierExpr) x.getParameters().get(0); item = new ItemFuncTimestampDiff(args.get(1), args.get(2), SQLIntervalUnit.valueOf(diffUnit.getSimpleName())); break; case "VAR_SAMP": SQLExpr expr = x.getParameters().get(0); if (expr instanceof SQLIdentifierExpr) { Item arg0 = new ItemString(((SQLIdentifierExpr) expr).getName()); args.set(0, arg0); } else {
private boolean containShardKeyIn(SQLExpr expr) { if (expr instanceof SQLIdentifierExpr) { String colName = ((SQLIdentifierExpr) expr).getSimpleName(); return containShardKeyIn(colName); } else if (expr instanceof SQLListExpr) { List<SQLExpr> identifiers = ((SQLListExpr) expr).getItems(); if (identifiers != null) { for (SQLExpr identifier : identifiers) { String colName = ((SQLIdentifierExpr) identifier).getSimpleName(); if (containShardKeyIn(colName)) { return true; } } } } return false; }
public void reset(){ node.setName(originalName); } }
public SQLPropertyExpr(String owner, String name){ this(new SQLIdentifierExpr(owner), name); }
private void renderTB(MySqlSelectQueryBlock x) { if (x.getFrom() instanceof SQLExprTableSource) { SQLExprTableSource from = (SQLExprTableSource) x.getFrom(); if (from.getExpr() instanceof SQLIdentifierExpr) { SQLIdentifierExpr expr = (SQLIdentifierExpr) from.getExpr(); expr.setName(expr.getName() + tableSuffix); } } } }
SQLIdentifierExpr maxValue = new SQLIdentifierExpr(lexer.stringVal()); lexer.nextToken(); maxValue.setParent(values); values.addItem(maxValue); } else {
@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; }
@Override public boolean visit(SQLExprTableSource astNode) { if (StringUtil.removeBackquote(astNode.toString()).equals(originalName)){ if (isReplase){ throw new BayMaxException("分区表名在一个Sql中只能出现一次:" + originalName + "," +newName); }else { node = (SQLIdentifierExpr) astNode.getExpr(); node.setName(newName); isReplase = true; } } return true; }
public static boolean matchIgnoreCase(SQLExpr expr, String name) { if (!(expr instanceof SQLIdentifierExpr)) { return false; } SQLIdentifierExpr ident = (SQLIdentifierExpr) expr; return ident.getName().equalsIgnoreCase(name); } }
public void simplify() { super.simplify(); for (SQLSelectOrderByItem item : columns) { SQLExpr column = item.getExpr(); if (column instanceof SQLIdentifierExpr) { SQLIdentifierExpr identExpr = (SQLIdentifierExpr) column; String columnName = identExpr.getName(); String normalized = SQLUtils.normalize(columnName, dbType); if (normalized != columnName) { item.setExpr(new SQLIdentifierExpr(columnName)); } } } }
public MySqlAlterTableOption(String name, String value){ this(name, new SQLIdentifierExpr(value)); }
private void processTableName(SQLExpr sqlName) { if (sqlName instanceof SQLPropertyExpr) { SQLIdentifierExpr owner = (SQLIdentifierExpr) ((SQLPropertyExpr) sqlName).getOwner(); String oldSchem = unescapeName(owner.getName()); String oldTable = unescapeName(((SQLPropertyExpr) sqlName).getName()); if ((sourceSchema == null || oldSchem.equalsIgnoreCase(sourceSchema)) && (sourceTable == null || oldTable.equalsIgnoreCase(sourceTable))) { // rename需要匹配表名 owner.setName("`" + targetSchema + "`"); ((SQLPropertyExpr) sqlName).setName("`" + targetTable + "`"); } } else if (sqlName instanceof SQLIdentifierExpr) { String oldTable = unescapeName(((SQLIdentifierExpr) sqlName).getName()); if (sourceTable == null || oldTable.equalsIgnoreCase(sourceTable)) { // try { // // 拼上一个schema // this.appender.append("`" + targetSchema + "`"); // } catch (IOException e) { // throw new RuntimeException(e); // } ((SQLIdentifierExpr) sqlName).setName("`" + targetTable + "`"); } } else { throw new RuntimeException("not support SQLName:" + sqlName); } sqlName.accept(this); }
SQLIdentifierExpr exp = new SQLIdentifierExpr(name); exp.setParent(item); selectList.add(addItem);