Commit f88168cb by wuchao

更改路径

parent 53bd9ac4
......@@ -148,7 +148,7 @@ public abstract class SQLObjectImpl implements SQLObject {
this.attributes.put("rowFormat.before_comment", comments);
}
comments.add(comment);
((List)comments).add(comment);
}
}
......@@ -181,7 +181,7 @@ public abstract class SQLObjectImpl implements SQLObject {
this.attributes.put("rowFormat.after_comment", comments);
}
comments.add(comment);
((List)comments).add(comment);
}
public void addAfterComment(List<String> comments) {
......
package util;
import com.chenyang.druid.sql.SQLUtils;
import com.chenyang.druid.sql.ast.SQLStatement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.chenyang.druid.sql.SQLUtils;
import com.chenyang.druid.sql.ast.SQLStatement;
import util.log.SQLLogger;
import util.sqlparse.DB2Parse;
import util.sqlparse.DmParse;
......
......@@ -5,6 +5,7 @@ import bean.Schema;
import bean.Table;
import bean.View;
import com.chenyang.druid.util.StringUtils;
import java.util.Iterator;
import java.util.Map;
import util.getdata.DatabaseCache;
import util.sqlparse.visitor.common.names.NameWrapper;
......@@ -52,7 +53,7 @@ public class OracleNameWrapper extends NameWrapper {
} else {
String column = c.getColumnName();
if (column != null && column.length() != 0) {
ColInfo colInfo = this.getColumnInfo(c);
NameWrapper.ColInfo colInfo = this.getColumnInfo(c);
this.unwrapColumn(colInfo);
return colInfo.unwrap("\"");
} else {
......@@ -77,14 +78,19 @@ public class OracleNameWrapper extends NameWrapper {
if (sch != null) {
return sch;
} else {
for(Map.Entry<String, Schema> pair : schemas.entrySet()) {
if (((String)pair.getKey()).equalsIgnoreCase(schema)) {
return (Schema)pair.getValue();
}
}
Iterator var4 = schemas.entrySet().iterator();
Map.Entry pair;
do {
if (!var4.hasNext()) {
return null;
}
pair = (Map.Entry)var4.next();
} while(!((String)pair.getKey()).equalsIgnoreCase(schema));
return (Schema)pair.getValue();
}
}
}
} else {
......@@ -105,26 +111,32 @@ public class OracleNameWrapper extends NameWrapper {
} else {
table = table.trim();
Map<String, Table> tables = this.cache.getTables();
String id;
if (table.startsWith("\"")) {
table = this.unwrapName(table);
String id = this.cache.getSchemaTableId(sch.getName(), table);
id = this.cache.getSchemaTableId(sch.getName(), table);
return (Table)tables.get(id);
} else {
table = this.unwrapName(table);
table = table.toUpperCase();
String id = this.cache.getSchemaTableId(sch.getName(), table);
id = this.cache.getSchemaTableId(sch.getName(), table);
Table tb = (Table)tables.get(id);
if (tb != null) {
return tb;
} else {
for(Map.Entry<String, Table> pair : tables.entrySet()) {
if (((String)pair.getKey()).equalsIgnoreCase(id)) {
return (Table)pair.getValue();
}
}
Iterator var6 = tables.entrySet().iterator();
Map.Entry pair;
do {
if (!var6.hasNext()) {
return null;
}
pair = (Map.Entry)var6.next();
} while(!((String)pair.getKey()).equalsIgnoreCase(id));
return (Table)pair.getValue();
}
}
}
}
......@@ -142,21 +154,22 @@ public class OracleNameWrapper extends NameWrapper {
} else {
viewName = viewName.trim();
Map<String, View> views = this.cache.getViews();
String id;
if (viewName.startsWith("\"")) {
viewName = this.unwrapName(viewName);
String id = this.cache.getSchemaTableId(sch.getName(), viewName);
id = this.cache.getSchemaTableId(sch.getName(), viewName);
return (View)views.get(id);
} else {
viewName = this.unwrapName(viewName);
viewName = viewName.toUpperCase();
String id = this.cache.getSchemaTableId(sch.getName(), viewName);
id = this.cache.getSchemaTableId(sch.getName(), viewName);
View view = (View)views.get(id);
return view;
}
}
}
public void unwrapColumn(ColInfo colInfo) {
public void unwrapColumn(NameWrapper.ColInfo colInfo) {
String schema = colInfo.schema;
String table = colInfo.table;
String col = colInfo.column;
......@@ -175,8 +188,10 @@ public class OracleNameWrapper extends NameWrapper {
col = col.trim();
boolean isCase = col.startsWith("\"");
col = this.unwrapName(col);
Iterator var8 = tb.getColumnList().iterator();
for(Column column : tb.getColumnList()) {
while(var8.hasNext()) {
Column column = (Column)var8.next();
if (isCase) {
if (column.getColumnName().equals(col)) {
colInfo.column = column.getColumnName();
......
......@@ -14,6 +14,7 @@ import com.chenyang.druid.sql.ast.statement.SQLSelectQuery;
import com.chenyang.druid.sql.ast.statement.SQLSelectStatement;
import com.chenyang.druid.sql.ast.statement.SQLTableSource;
import com.chenyang.druid.sql.ast.statement.SQLUpdateStatement;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import util.JdbcUtil;
......@@ -36,8 +37,10 @@ public class Desensitization {
params.put("newSql", sql);
String url = (String)params.get("url");
String ipPort = OracleParse.getIpPort(url);
Iterator var7 = JdbcUtil.dataBaseList.iterator();
for(DataBase base : JdbcUtil.dataBaseList) {
while(var7.hasNext()) {
DataBase base = (DataBase)var7.next();
if (base.getIp_port().equalsIgnoreCase(ipPort)) {
dataBase = base;
}
......@@ -61,9 +64,14 @@ public class Desensitization {
SQLResult result = this.getSqlResult(params);
List<TableInfo> tables = result.tables;
params.put("isMatched", "false");
Iterator var6 = tables.iterator();
for(TableInfo table : tables) {
for(TableMemo tableMemo : table.getMemos()) {
while(var6.hasNext()) {
TableInfo table = (TableInfo)var6.next();
Iterator var8 = table.getMemos().iterator();
while(var8.hasNext()) {
TableMemo tableMemo = (TableMemo)var8.next();
String sourceName = OracleNameWrapper.normalize(tableMemo.name);
boolean isMatched = JdbcUtil.followRulesCaseSens(sourceName, "\"?" + replaceTable + "\"?");
if (isMatched) {
......@@ -96,7 +104,7 @@ public class Desensitization {
if (ts == null) {
return 0;
} else {
for(SQLObject cursor = ts; cursor != null; cursor = cursor.getParent()) {
for(SQLObject cursor = ts; cursor != null; cursor = ((SQLObject)cursor).getParent()) {
if (cursor instanceof SQLUpdateStatement) {
return 0;
}
......@@ -144,8 +152,10 @@ public class Desensitization {
params.put("newSql", sql);
String url = (String)params.get("url");
String ipPort = OracleParse.getIpPort(url);
Iterator var7 = JdbcUtil.dataBaseList.iterator();
for(DataBase base : JdbcUtil.dataBaseList) {
while(var7.hasNext()) {
DataBase base = (DataBase)var7.next();
if (base.getIp_port().equalsIgnoreCase(ipPort)) {
dataBase = base;
}
......
......@@ -11,6 +11,7 @@ import com.chenyang.druid.sql.ast.statement.SQLSelectItem;
import com.chenyang.druid.sql.ast.statement.SQLSelectQueryBlock;
import com.chenyang.druid.util.StringUtils;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
......@@ -43,17 +44,34 @@ public class FieldReplaceController {
List<FieldInfo> fields = this.result.outputs;
Set<SQLObject> parsed = new HashSet();
this.params.put("isMatched", "false");
Iterator var4 = fields.iterator();
for(FieldInfo fieldInfo : fields) {
while(true) {
label40:
while(var4.hasNext()) {
FieldInfo fieldInfo = (FieldInfo)var4.next();
if (fieldInfo.getRelations().size() <= 0) {
if (this.isHit(fieldInfo, this.result.isCaseSensitive)) {
this.repalceFromRef(fieldInfo.getMemo(), parsed);
this.params.put("isMatched", "true");
}
} else {
for(FieldInfo fieldInfo1 : fieldInfo.getRelations()) {
if (this.isHit(fieldInfo1, this.result.isCaseSensitive)) {
for(FieldMemo memo : fieldInfo1.getMemos()) {
Iterator var6 = fieldInfo.getRelations().iterator();
while(true) {
FieldInfo fieldInfo1;
do {
if (!var6.hasNext()) {
continue label40;
}
fieldInfo1 = (FieldInfo)var6.next();
} while(!this.isHit(fieldInfo1, this.result.isCaseSensitive));
Iterator var8 = fieldInfo1.getMemos().iterator();
while(var8.hasNext()) {
FieldMemo memo = (FieldMemo)var8.next();
this.repalceFromRef(memo, parsed);
}
......@@ -61,9 +79,10 @@ public class FieldReplaceController {
}
}
}
}
this.params.put("newSql", statement.toString());
return;
}
}
private void repalceFromRef(FieldMemo memo, Set<SQLObject> parsed) {
......
......@@ -83,6 +83,7 @@ import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleUpdateStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleUsingIndexClause;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleXmlColumnProperties;
import com.chenyang.druid.sql.dialect.oracle.visitor.OracleASTVisitor;
import java.util.Iterator;
import java.util.List;
import util.sqlparse.visitor.Formater;
......@@ -91,7 +92,10 @@ public class FormatVisitor extends Formater implements OracleASTVisitor {
public void perform(List<SQLStatement> statements) {
if (statements != null && statements.size() != 0) {
for(SQLStatement statement : statements) {
Iterator var2 = statements.iterator();
while(var2.hasNext()) {
SQLStatement statement = (SQLStatement)var2.next();
statement.accept(this);
}
......
......@@ -74,7 +74,10 @@ public class OracleScopeDialector extends ScopeDialector {
}
}
for(Column column : columns) {
Iterator var15 = columns.iterator();
while(var15.hasNext()) {
Column column = (Column)var15.next();
FieldMemo field = new FieldMemo();
field.table = table;
field.alias = column.getColumnName();
......@@ -148,14 +151,16 @@ public class OracleScopeDialector extends ScopeDialector {
List<FieldMemo> children = field.children;
Iterator<FieldMemo> iterator = children.iterator();
FieldMemo fieldMemo;
while(iterator.hasNext()) {
FieldMemo x = (FieldMemo)iterator.next();
if (x.outside) {
fieldMemo = (FieldMemo)iterator.next();
if (fieldMemo.outside) {
iterator.remove();
}
}
if (children.size() > 0) {
List<FieldMemo> exists = children;
Iterator<FieldMemo> iterator1 = children.iterator();
while(iterator1.hasNext()) {
......@@ -165,7 +170,10 @@ public class OracleScopeDialector extends ScopeDialector {
}
}
for(FieldMemo exist : children) {
Iterator var11 = exists.iterator();
while(var11.hasNext()) {
FieldMemo exist = (FieldMemo)var11.next();
if (!exist.outside) {
exist.isSelectItem = field.isSelectItem;
}
......@@ -174,7 +182,7 @@ public class OracleScopeDialector extends ScopeDialector {
fieldMap.put(qualifiedName, field);
} else {
if (fieldMap.containsKey(qualifiedName)) {
FieldMemo fieldMemo = (FieldMemo)fieldMap.get(qualifiedName);
fieldMemo = (FieldMemo)fieldMap.get(qualifiedName);
field.exprs.addAll(fieldMemo.exprs);
if (fieldMemo.isSelectItem) {
field.isSelectItem = true;
......
......@@ -18,6 +18,7 @@ import com.chenyang.druid.sql.ast.statement.SQLSelectStatement;
import com.chenyang.druid.sql.ast.statement.SQLTableSource;
import com.chenyang.druid.sql.ast.statement.SQLUpdateStatement;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
......@@ -55,11 +56,26 @@ public class RowVisitController {
Pattern pattern = Pattern.compile("\"?" + tempTableRegex + "\"?");
List<TableInfo> tables = this.result.tables;
Set<SQLObject> parsed = new HashSet();
Iterator var6 = tables.iterator();
for(TableInfo table : tables) {
String name = OracleNameWrapper.normalize(table.getTable().name);
if (pattern.matcher(name).matches()) {
for(TableMemo memo : table.getMemos()) {
while(true) {
TableInfo table;
String name;
do {
if (!var6.hasNext()) {
this.params.put("newSql", statement.toString());
return;
}
table = (TableInfo)var6.next();
name = OracleNameWrapper.normalize(table.getTable().name);
} while(!pattern.matcher(name).matches());
List<TableMemo> memos = table.getMemos();
Iterator var10 = memos.iterator();
while(var10.hasNext()) {
TableMemo memo = (TableMemo)var10.next();
SQLObject ref = memo.ref;
if (!parsed.contains(ref) && ref instanceof SQLTableSource) {
this.params.put("isMatched", "true");
......@@ -88,9 +104,6 @@ public class RowVisitController {
}
}
}
this.params.put("newSql", statement.toString());
}
}
private void limitStatement() {
......
......@@ -13,6 +13,7 @@ import com.chenyang.druid.sql.ast.statement.SQLMergeStatement;
import com.chenyang.druid.sql.ast.statement.SQLUpdateSetItem;
import com.chenyang.druid.sql.dialect.mysql.ast.expr.MySqlCharExpr;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
......@@ -37,8 +38,11 @@ public class ValueReplacer {
public void replaceValues(List<ValueInfo> values) {
if (values != null && values.size() != 0) {
for(ValueMemo value : values) {
this.replaceValue(value, null);
Iterator var2 = values.iterator();
while(var2.hasNext()) {
ValueMemo value = (ValueMemo)var2.next();
this.replaceValue(value, (String)null);
}
}
......@@ -205,7 +209,10 @@ public class ValueReplacer {
if (field.getChildren().size() == 0 && this.replace != null && this.replace.containsKey(this.replace.get(field.getAtomName()))) {
output.add(field.getAtomName());
} else {
for(FieldMemo child : field.children) {
Iterator var3 = field.children.iterator();
while(var3.hasNext()) {
FieldMemo child = (FieldMemo)var3.next();
this.getAtomFields(child, output);
}
......@@ -214,15 +221,15 @@ public class ValueReplacer {
private SQLExpr createValueExpr(ValueMemo value, SQLObject parent, String newVal) {
SQLTextLiteralExpr expr = new MySqlCharExpr();
expr.setParent(parent);
((SQLTextLiteralExpr)expr).setParent(parent);
if (newVal != null) {
expr.setText(newVal);
((SQLTextLiteralExpr)expr).setText(newVal);
} else {
String val = value.value.toString();
if (this.replace != null && this.replace.containsKey(value.field.getAtomName())) {
expr.setText((String)this.replace.get(value.field.getAtomName()));
((SQLTextLiteralExpr)expr).setText((String)this.replace.get(value.field.getAtomName()));
} else {
expr.setText(val);
((SQLTextLiteralExpr)expr).setText(val);
}
}
......
......@@ -10,6 +10,7 @@ import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleSelectQueryBlock;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleUpdateStatement;
import com.chenyang.druid.sql.dialect.oracle.visitor.DefaultOracleASTVisitor;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class WhereVisitor extends DefaultOracleASTVisitor {
......@@ -22,7 +23,10 @@ public class WhereVisitor extends DefaultOracleASTVisitor {
public void perform(List<SQLStatement> statements) {
if (statements != null && statements.size() != 0) {
for(SQLStatement statement : statements) {
Iterator var2 = statements.iterator();
while(var2.hasNext()) {
SQLStatement statement = (SQLStatement)var2.next();
statement.accept(this);
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论