public void reset(){ node.setName(originalName); } }
@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; }
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); }
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()); } } } }
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); } } } }