refactor sql parser.

This commit is contained in:
wenshao
2017-08-29 17:10:26 +08:00
parent 2b164c377b
commit 718500cf59
24 changed files with 235 additions and 282 deletions
@@ -38,7 +38,7 @@ public class MySqlParameterizedBenchmark extends TestCase {
// perf_parse(sql3); // 9174 5875 5805 5536 5717
// perf_parse(sql4); // 2953 2502
perf_stat(sql); // 11793 13628 13561 13259
perf_stat(sql); // 11793 13628 13561 13259 9909
// perf_resolve(sql); // 4970 4586
}
@@ -65,6 +65,8 @@ public class MySqlCreateProcedureTest8 extends MysqlTest {
// print(statementList);
assertEquals(1, statementList.size());
System.out.println(stmt);
SchemaStatVisitor visitor = SQLUtils.createSchemaStatVisitor(JdbcConstants.MYSQL);
stmt.accept(visitor);
@@ -38,15 +38,17 @@ public class MySqlSelectTest_29 extends MysqlTest {
SQLStatement stmt = statementList.get(0);
// print(statementList);
System.out.println(stmt);
Assert.assertEquals(1, statementList.size());
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
stmt.accept(visitor);
// System.out.println("Tables : " + visitor.getTables());
// System.out.println("fields : " + visitor.getColumns());
// System.out.println("coditions : " + visitor.getConditions());
// System.out.println("orderBy : " + visitor.getOrderByColumns());
System.out.println("Tables : " + visitor.getTables());
System.out.println("fields : " + visitor.getColumns());
System.out.println("coditions : " + visitor.getConditions());
System.out.println("orderBy : " + visitor.getOrderByColumns());
Assert.assertEquals(2, visitor.getTables().size());
Assert.assertEquals(6, visitor.getColumns().size());
@@ -31,13 +31,14 @@ public class OracleBlockTest1 extends OracleTest {
OracleStatementParser parser = new OracleStatementParser(sql);
List<SQLStatement> statementList = parser.parseStatementList();
SQLStatement statemen = statementList.get(0);
print(statementList);
SQLStatement stmt = statementList.get(0);
Assert.assertEquals(1, statementList.size());
System.out.println(stmt);
OracleSchemaStatVisitor visitor = new OracleSchemaStatVisitor();
statemen.accept(visitor);
stmt.accept(visitor);
System.out.println("Tables : " + visitor.getTables());
System.out.println("fields : " + visitor.getColumns());
@@ -123,7 +123,7 @@ public class Demo1 extends TestCase {
String tableName = identExpr.getName();
if (tableName.equals("user")) {
identExpr.setName(this.tableName);
x.setExpr(this.tableName);
}
} else if (expr instanceof SQLPropertyExpr) {
SQLPropertyExpr proExpr = (SQLPropertyExpr) expr;
@@ -144,7 +144,7 @@ public class Demo1 extends TestCase {
String tableName = identExpr.getName();
if (tableName.equals("user")) {
identExpr.setName(this.tableName);
x.setExpr(this.tableName);
}
} else if (expr instanceof SQLPropertyExpr) {
SQLPropertyExpr proExpr = (SQLPropertyExpr) expr;
@@ -74,7 +74,7 @@ public class Demo2 extends TestCase {
String ident = identExpr.getName();
if (ident.equals("user")) {
identExpr.setName(tableName);
tableSource.setExpr(tableName);
}
} else if (expr instanceof SQLPropertyExpr) {
SQLPropertyExpr proExpr = (SQLPropertyExpr) expr;
@@ -113,7 +113,7 @@ public class Demo3 extends TestCase {
String ident = identExpr.getName();
if (ident.equals("user")) {
identExpr.setName(tableName);
tableSource.setExpr(new SQLIdentifierExpr(tableName));
}
} else if (expr instanceof SQLPropertyExpr) {
SQLPropertyExpr proExpr = (SQLPropertyExpr) expr;