Skip to content

Commit 29f6e9b

Browse files
committed
implemented drop, working on minifier
1 parent c325d14 commit 29f6e9b

File tree

8 files changed

+40
-812
lines changed

8 files changed

+40
-812
lines changed

Gruntfile.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ module.exports = function(grunt) {
3535
'src/parser/jSQLParseSelectTokens.js',
3636
'src/parser/jSQLParseUpdateTokens.js',
3737
'src/parser/jSQLParseDeleteTokens.js',
38+
'src/parser/jSQLParseDropTokens.js',
3839
'src/parser/jSQLParseWhereClause.js',
3940
'src/parser/jSQLWhereClause.js',
4041
'src/persistence/API.js',

jSQL.js

Lines changed: 11 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1325,7 +1325,7 @@ function jSQLParseQuery(query){
13251325
return jSQLParseDeleteTokens(tokens);
13261326
break;
13271327
case "DROP TABLE":
1328-
1328+
return jSQLParseDropTokens(tokens);
13291329
break;
13301330
}
13311331

@@ -1616,6 +1616,12 @@ function jSQLParseDeleteTokens(tokens){
16161616
return query;
16171617
}
16181618

1619+
function jSQLParseDropTokens(tokens){
1620+
var token = tokens.shift();
1621+
var table_name = jSQLParseQuery.validateTableNameToken(token);
1622+
return jSQL.dropTable(table_name);
1623+
}
1624+
16191625
function jSQLParseWhereClause(query, tokens, table_name){
16201626
var orderColumns = [];
16211627
while(tokens.length){
@@ -2676,66 +2682,10 @@ function jSQLReset(){
26762682
}
26772683

26782684
function jSQLMinifier(sql){
2679-
var cleanSQL = "";
2680-
var lines = sql.split("\n");
2681-
var inQuote = false;
2682-
var quoteType = "";
2683-
var quotes = ["'", "`", '"'];
2684-
var inMultiLineComment = false;
2685-
for (var i = 0; i < lines.length; i++) {
2686-
for (var n = 0; n < lines[i].length; n++) {
2687-
var char = lines[i][n];
2688-
if (!inQuote && quotes.indexOf(char) > -1) {
2689-
inQuote = true;
2690-
quoteType = char;
2691-
cleanSQL += char;
2692-
continue;
2693-
} else if (inQuote && quoteType === char) {
2694-
inQuote = false;
2695-
quoteType = "";
2696-
cleanSQL += char;
2697-
continue;
2698-
} else if (inQuote) {
2699-
cleanSQL += char;
2700-
continue;
2701-
}
2702-
// not in a quote
2703-
var isCommentStart =
2704-
char === "/" &&
2705-
lines[i].length > n &&
2706-
lines[i][n + 1] == "*"
2707-
var isCommentEnd =
2708-
char === "*" &&
2709-
lines[i].length > n &&
2710-
lines[i][n + 1] == "/"
2711-
if (!inMultiLineComment && isCommentStart) {
2712-
inMultiLineComment = true;
2713-
continue;
2714-
} else if (isCommentEnd && inMultiLineComment) {
2715-
n++;
2716-
inMultiLineComment = false;
2717-
continue;
2718-
}
2719-
if (inMultiLineComment)
2720-
continue;
2721-
// not in multiline comment
2722-
var isSLCommentStart =
2723-
char === "#" ||
2724-
(char === "-" &&
2725-
lines[i].length > n &&
2726-
lines[i][n + 1] == "-");
2727-
if (isSLCommentStart)
2728-
break;
2729-
else
2730-
cleanSQL += char;
2731-
}
2732-
cleanSQL += "\n";
2733-
}
2734-
return cleanSQL
2735-
.replace(/\t/g,' ')
2736-
.replace(/(\r\n|\n|\r)/gm," ")
2737-
.replace(/ +(?= )/g,'')
2738-
.trim();
2685+
var tokens = new jSQLLexer(sql).getTokens();
2686+
var minified_sql = [];
2687+
for(var i=0;i<tokens.length;i++) minified_sql.push(tokens[i].literal);
2688+
return minified_sql.join(' ');
27392689
}
27402690

27412691
function removeQuotes(str){

jSQL.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/helpers/jSQLMinifier.js

Lines changed: 4 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,7 @@
11

22
function jSQLMinifier(sql){
3-
var cleanSQL = "";
4-
var lines = sql.split("\n");
5-
var inQuote = false;
6-
var quoteType = "";
7-
var quotes = ["'", "`", '"'];
8-
var inMultiLineComment = false;
9-
for (var i = 0; i < lines.length; i++) {
10-
for (var n = 0; n < lines[i].length; n++) {
11-
var char = lines[i][n];
12-
if (!inQuote && quotes.indexOf(char) > -1) {
13-
inQuote = true;
14-
quoteType = char;
15-
cleanSQL += char;
16-
continue;
17-
} else if (inQuote && quoteType === char) {
18-
inQuote = false;
19-
quoteType = "";
20-
cleanSQL += char;
21-
continue;
22-
} else if (inQuote) {
23-
cleanSQL += char;
24-
continue;
25-
}
26-
// not in a quote
27-
var isCommentStart =
28-
char === "/" &&
29-
lines[i].length > n &&
30-
lines[i][n + 1] == "*"
31-
var isCommentEnd =
32-
char === "*" &&
33-
lines[i].length > n &&
34-
lines[i][n + 1] == "/"
35-
if (!inMultiLineComment && isCommentStart) {
36-
inMultiLineComment = true;
37-
continue;
38-
} else if (isCommentEnd && inMultiLineComment) {
39-
n++;
40-
inMultiLineComment = false;
41-
continue;
42-
}
43-
if (inMultiLineComment)
44-
continue;
45-
// not in multiline comment
46-
var isSLCommentStart =
47-
char === "#" ||
48-
(char === "-" &&
49-
lines[i].length > n &&
50-
lines[i][n + 1] == "-");
51-
if (isSLCommentStart)
52-
break;
53-
else
54-
cleanSQL += char;
55-
}
56-
cleanSQL += "\n";
57-
}
58-
return cleanSQL
59-
.replace(/\t/g,' ')
60-
.replace(/(\r\n|\n|\r)/gm," ")
61-
.replace(/ +(?= )/g,'')
62-
.trim();
3+
var tokens = new jSQLLexer(sql).getTokens();
4+
var minified_sql = [];
5+
for(var i=0;i<tokens.length;i++) minified_sql.push(tokens[i].literal);
6+
return minified_sql.join(' ');
637
}

0 commit comments

Comments
 (0)