Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 80850f9

Browse files
committed
verbose
1 parent 42b8389 commit 80850f9

File tree

6 files changed

+118
-10
lines changed

6 files changed

+118
-10
lines changed

‎.idea/workspace.xml

Lines changed: 35 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎input.json

Lines changed: 61 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,64 @@
11
{
22
"CRUD": ["SELECT"],
3-
"COLUMN": ["COL"],
4-
"TABLE": ["TABLE"],
5-
"UNION 1": ["SELECT COL AS ALIAS FROM UNIONTABLE WHERE CON = 'CON'"]
3+
"COLUMN": ["*"],
4+
"TABLE": ["(SELECT A, B, C FROM SUBQUERYTABLE WHERE CONDITION IN ('A', 'B', 'C') AND CONDITION IN (SELECT CONDITION FROM ANOTHER UNION SELECT CONDITION FROM UNIONTABLE))"],
5+
"TABLE SUB QUERY 1": ["(SELECT A, B, C FROM SUBQUERYTABLE WHERE CONDITION IN ('A', 'B', 'C') AND CONDITION IN (SELECT CONDITION FROM ANOTHER UNION SELECT CONDITION FROM UNIONTABLE))"],
6+
"TABLE SUB QUERY ANALYSE 1": {
7+
"CRUD": ["SELECT"],
8+
"COLUMN": [
9+
"A",
10+
"B",
11+
"C"
12+
],
13+
"TABLE": ["SUBQUERYTABLE"],
14+
"WHERE": ["CONDITION IN ('A', 'B', 'C') AND CONDITION IN (SELECT CONDITION FROM ANOTHER UNION SELECT CONDITION FROM UNIONTABLE)"],
15+
"WHERE SUB QUERY 1": ["(SELECT CONDITION FROM ANOTHER UNION SELECT CONDITION FROM UNIONTABLE)"],
16+
"WHERE SUB QUERY ANALYSE 1": {
17+
"CRUD": ["SELECT"],
18+
"COLUMN": ["CONDITION"],
19+
"TABLE": ["ANOTHER"],
20+
"UNION 1": ["SELECT CONDITION FROM UNIONTABLE"],
21+
"UNION ANALYSE 1": {
22+
"CRUD": ["SELECT"],
23+
"COLUMN": ["CONDITION"],
24+
"TABLE": ["UNIONTABLE"]
25+
}
26+
}
27+
},
28+
"UNION ALL 1": ["SELECT DISTINCT VAL FROM ((SELECT FIELD1 AS VAL FROM TABLE1 WHERE CONDITION1 = 'CONDITION1') UNION ALL (SELECT FIELD2 FROM TABLE1 WHERE CONDITION2 = 'CONDITION2') UNION ALL (SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3') UNION ALL (SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3')) T"],
29+
"UNION ALL ANALYSE 1": {
30+
"CRUD": ["SELECT"],
31+
"DISTINCT": ["TRUE"],
32+
"COLUMN": ["VAL"],
33+
"TABLE": ["((SELECT FIELD1 AS VAL FROM TABLE1 WHERE CONDITION1 = 'CONDITION1') UNION ALL (SELECT FIELD2 FROM TABLE1 WHERE CONDITION2 = 'CONDITION2') UNION ALL (SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3') UNION ALL (SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3')) T"],
34+
"TABLE ALIAS": ["T"],
35+
"TABLE SUB QUERY 1": ["((SELECT FIELD1 AS VAL FROM TABLE1 WHERE CONDITION1 = 'CONDITION1') UNION ALL (SELECT FIELD2 FROM TABLE1 WHERE CONDITION2 = 'CONDITION2') UNION ALL (SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3') UNION ALL (SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3'))"],
36+
"TABLE SUB QUERY ANALYSE 1": {
37+
"CRUD": ["SELECT"],
38+
"COLUMN": ["FIELD1 AS VAL"],
39+
"TABLE": ["TABLE1"],
40+
"UNION ALL 1": ["SELECT FIELD2 FROM TABLE1 WHERE CONDITION2 = 'CONDITION2'"],
41+
"UNION ALL 2": ["SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3'"],
42+
"UNION ALL 3": ["SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3'"],
43+
"UNION ALL ANALYSE 1": {
44+
"CRUD": ["SELECT"],
45+
"COLUMN": ["FIELD2"],
46+
"TABLE": ["TABLE1"],
47+
"WHERE": ["CONDITION2 = 'CONDITION2'"]
48+
},
49+
"UNION ALL ANALYSE 2": {
50+
"CRUD": ["SELECT"],
51+
"COLUMN": ["FIELD3"],
52+
"TABLE": ["TABLE3"],
53+
"WHERE": ["CONDITION3 = 'CONDITION3'"]
54+
},
55+
"UNION ALL ANALYSE 3": {
56+
"CRUD": ["SELECT"],
57+
"COLUMN": ["FIELD3"],
58+
"TABLE": ["TABLE3"],
59+
"WHERE": ["CONDITION3 = 'CONDITION3'"]
60+
},
61+
"WHERE": ["CONDITION1 = 'CONDITION1'"]
62+
}
63+
}
664
}
986 Bytes
Binary file not shown.
1.05 KB
Binary file not shown.

‎output.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
(SELECT COL FROM TABLE) UNION (SELECT COL AS ALIAS FROM UNIONTABLE WHERE CON = 'CON')
1+
(SELECT * FROM (SELECT A, B, C FROM SUBQUERYTABLE WHERE CONDITION IN ('A', 'B', 'C') AND CONDITION IN (SELECT CONDITION FROM ANOTHER UNION SELECT CONDITION FROM UNIONTABLE))) UNION ALL (SELECT DISTINCT VAL FROM ((SELECT FIELD1 AS VAL FROM TABLE1 WHERE CONDITION1 = 'CONDITION1') UNION ALL (SELECT FIELD2 FROM TABLE1 WHERE CONDITION2 = 'CONDITION2') UNION ALL (SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3') UNION ALL (SELECT FIELD3 FROM TABLE3 WHERE CONDITION3 = 'CONDITION3')) T)

‎src/com/inzapp/jsonToSqlParser/JsonToSqlParser.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,15 @@
44
import com.inzapp.jsonToSqlParser.core.Parser;
55
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
66
import org.json.JSONObject;
7+
import org.openqa.selenium.JavascriptExecutor;
78

89
import java.io.BufferedReader;
910
import java.io.FileOutputStream;
1011
import java.io.FileReader;
12+
import java.util.Stack;
13+
import java.util.concurrent.Callable;
14+
import java.util.concurrent.Executors;
15+
import java.util.concurrent.TimeUnit;
1116

1217
public class JsonToSqlParser extends Parser {
1318
/**
@@ -53,6 +58,21 @@ public static void main(String[] args) {
5358
System.out.println("parse success");
5459
}
5560

61+
private String removeOuterBracket(String sql) {
62+
if (sql.charAt(0) == '(' && sql.charAt(sql.length() - 1) == ')') {
63+
Stack<Boolean> bracketStack = new Stack<>();
64+
for (int i = 0; i < sql.length(); ++i) {
65+
if (sql.charAt(i) == '(') bracketStack.push(true);
66+
else if (sql.charAt(i) == ')') {
67+
bracketStack.pop();
68+
if (bracketStack.size() == 0 && i != sql.length() - 1)
69+
return sql;
70+
}
71+
}
72+
} else return "";
73+
return "";
74+
}
75+
5676
/**
5777
* head method as java library
5878
*
@@ -97,7 +117,7 @@ private JSONObject readJsonFromFile(String fileName) {
97117
/**
98118
* save converted sql string to file
99119
*
100-
* @param sql converted sql from parser
120+
* @param sql converted sql from parser
101121
* @param fileName output file name, default is "output.txt"
102122
*/
103123
private void saveFile(String sql, String fileName) {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /