Skip to content

Commit dca05ea

Browse files
committed
第一遍框架完成,接下来可以完成具体功能和性能优化
1 parent 9f43325 commit dca05ea

File tree

4 files changed

+300
-113
lines changed

4 files changed

+300
-113
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package io.mycat;
2+
3+
/**
4+
* Created by Fanfan on 2017/3/4.
5+
*/
6+
public class IntTokenHash {
7+
public static final int FROM = 0x992e0004;
8+
public static final int JOIN = 0xf9700004;
9+
public static final int UPDATE = 0x62840006;
10+
public static final int USE = 0xf840003;
11+
public static final int DELETE = 0x33e50006;
12+
public static final int DROP = 0xba5d0004;
13+
public static final int SELECT = 0x2a10006;
14+
public static final int SHOW = 0xb0300004;
15+
public static final int INSERT = 0xa3b10006;
16+
public static final int INTO = 0xb2e70004;
17+
public static final int LOCK = 0xed330004;
18+
public static final int LIMIT = 0x450a0005;
19+
public static final int ALTER = 0xb2db0005;
20+
public static final int CREATE = 0xdde00006;
21+
public static final int REPLACE = 0xa88c0007;
22+
public static final int TABLE = 0x3780005;
23+
public static final int TRUNCATE = 0xcb5d0008;
24+
public static final int DELAYED = 0x56380007;
25+
public static final int LOW_PRIORITY = 0xb805000c;
26+
public static final int HIGH_PRIORITY = 0x7c6f000d;
27+
public static final int IGNORE = 0x6c360006;
28+
public static final int AS = 0x46580002;
29+
public static final int IF = 0x47650002;
30+
public static final int NOT = 0x68b00003;
31+
public static final int EXISTS = 0x2ed70006;
32+
public static final int BALANCE = 0x8d070007;
33+
public static final int SQL = 0x53820003;
34+
public static final int MYCAT = 0xdce50005;
35+
public static final int DB_TYPE = 0xac610007;
36+
public static final int SCHEMA = 0xc490006;
37+
public static final int DATANODE = 0x45d0008;
38+
public static final int CATLET = 0xda600006;
39+
}

src/main/java/io/mycat/MatchMethodGenerator.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,15 @@ static long genHash(char[] str) {
198198
return hash;
199199
}
200200

201+
//JSHash
202+
static int genHash2(char[] str) {
203+
int hash = 1315423911;
204+
for(char c: str) {
205+
hash ^= ((hash<<5)+shrinkCharTbl[c-'$']+(hash>>2));
206+
}
207+
return hash;
208+
}
209+
201210
static boolean cmp(char[] str1, char[] str2) {
202211
if (str1.length == str2.length) {
203212
for (int i=0; i< str1.length; i++) {
@@ -328,8 +337,8 @@ static void skipXXXTokenGenerator() {
328337
static void GenerateSqlTokenHash() {
329338
initShrinkCharTbl();
330339
try {
331-
Files.lines(Paths.get("sql_tokens.txt")).forEach(x -> {
332-
System.out.format(" public static final long %s = 0x%xL;%n", x, genHash(x.toCharArray()));
340+
Files.lines(Paths.get("minimal_sql_tokens.txt")).forEach(x -> {
341+
System.out.format(" public static final int %s = 0x%x%04x;%n", x, genHash2(x.toCharArray()) & 0xFFFF, x.length());
333342
});
334343
// System.out.println("conflict count : "+count);
335344
} catch (IOException e) {

0 commit comments

Comments
 (0)