improved sql parser.

This commit is contained in:
wenshao
2017-08-29 21:15:09 +08:00
parent 718500cf59
commit fd20785f6b
48 changed files with 894 additions and 847 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 9909
perf_stat(sql); // 11793 13628 13561 13259 9819
// perf_resolve(sql); // 4970 4586
}
@@ -5,17 +5,17 @@ import junit.framework.TestCase;
public class HashTest_0 extends TestCase {
public void test_issue() throws Exception {
assertEquals(new SQLIdentifierExpr("a").name_hash_lower()
, new SQLIdentifierExpr("A").name_hash_lower());;
assertEquals(new SQLIdentifierExpr("a").nameHashCode64()
, new SQLIdentifierExpr("A").nameHashCode64());;
}
public void test_issue_1() throws Exception {
assertEquals(new SQLIdentifierExpr("a").name_hash_lower()
, new SQLIdentifierExpr("`A`").name_hash_lower());;
assertEquals(new SQLIdentifierExpr("a").nameHashCode64()
, new SQLIdentifierExpr("`A`").nameHashCode64());;
}
public void test_issue_2() throws Exception {
assertEquals(new SQLIdentifierExpr("\"a\"").name_hash_lower()
, new SQLIdentifierExpr("`A`").name_hash_lower());;
assertEquals(new SQLIdentifierExpr("\"a\"").nameHashCode64()
, new SQLIdentifierExpr("`A`").nameHashCode64());;
}
}
@@ -1,29 +1,28 @@
package com.alibaba.druid.bvt.sql;
import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr;
import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr;
import com.alibaba.druid.util.FNVUtils;
import com.alibaba.druid.util.FnvHash;
import junit.framework.TestCase;
public class HashTest_1_propertyExpr extends TestCase {
public void test_issue() throws Exception {
assertEquals(new SQLPropertyExpr("t","a").name_hash_lower()
, new SQLPropertyExpr("t","A").name_hash_lower());;
assertEquals(new SQLPropertyExpr("t","a").nameHashCode64()
, new SQLPropertyExpr("t","A").nameHashCode64());;
}
public void test_issue_1() throws Exception {
assertEquals(new SQLPropertyExpr("t","a").name_hash_lower()
, new SQLPropertyExpr("t","`A`").name_hash_lower());;
assertEquals(new SQLPropertyExpr("t","a").nameHashCode64()
, new SQLPropertyExpr("t","`A`").nameHashCode64());;
}
public void test_issue_2() throws Exception {
assertEquals(new SQLPropertyExpr("t","\"a\"").name_hash_lower()
, new SQLPropertyExpr("t","`A`").name_hash_lower());;
assertEquals(new SQLPropertyExpr("t","\"a\"").nameHashCode64()
, new SQLPropertyExpr("t","`A`").nameHashCode64());;
}
public void test_issue_3() throws Exception {
assertEquals(new SQLPropertyExpr("ESCROW","HT_TASK_TRADE_HISTORY_NEW").name_hash_lower()
, new SQLPropertyExpr("\"ESCROW\"","\"HT_TASK_TRADE_HISTORY_NEW\"").name_hash_lower());;
assertEquals(new SQLPropertyExpr("ESCROW","HT_TASK_TRADE_HISTORY_NEW").nameHashCode64()
, new SQLPropertyExpr("\"ESCROW\"","\"HT_TASK_TRADE_HISTORY_NEW\"").nameHashCode64());;
}
public void test_issue_4() throws Exception {
@@ -33,14 +32,16 @@ public class HashTest_1_propertyExpr extends TestCase {
public void test_issue_5() throws Exception {
assertEquals(
FNVUtils.fnv_64_lower("a.b")
, FNVUtils.fnv_64_lower(new SQLPropertyExpr("\"a\"","\"b\"")));;
FnvHash.fnv_64_lower("a.b"),
new SQLPropertyExpr("\"a\"","\"b\"")
.hashCode64()
);
}
public void test_issue_6() throws Exception {
assertEquals(
FNVUtils.fnv_64_lower("ESCROW.HT_TASK_TRADE_HISTORY_NEW")
, FNVUtils.fnv_64_lower(new SQLPropertyExpr("\"ESCROW\"","\"HT_TASK_TRADE_HISTORY_NEW\"")));;
FnvHash.fnv_64_lower("ESCROW.HT_TASK_TRADE_HISTORY_NEW"),
new SQLPropertyExpr("\"ESCROW\"","\"HT_TASK_TRADE_HISTORY_NEW\"").hashCode64());
}
//ESCROW.HT_TASK_TRADE_HISTORY_NEW