Skip to content

Commit 6c7623f

Browse files
committed
chore: add benchmark.js
1 parent 5caacfb commit 6c7623f

File tree

3 files changed

+61
-3
lines changed

3 files changed

+61
-3
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@
2424
"jison": "^0.4.17"
2525
},
2626
"devDependencies": {
27-
"jison": "^0.4.17",
2827
"babel-preset-es2015": "^6.22.0",
2928
"babel-register": "^6.22.0",
29+
"benchmark": "^2.1.3",
30+
"jison": "^0.4.17",
3031
"mocha": "^3.2.0"
3132
}
3233
}

test/benchmark.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
'use strict';
2+
3+
const Benchmark = require('benchmark');
4+
const suite = new Benchmark.Suite;
5+
const parser = require('../');
6+
7+
let simpleAst = {};
8+
let complexAst = {};
9+
const simpleSql = `
10+
select a from b where c > 1 group by d order by e desc
11+
`;
12+
const complexSql = `
13+
SELECT rd.*, ((rd.rd_numberofrooms) - (select sum(rn.reservation_numberofrooms) as count_reserve_room from reservation as rn WHERE rn.reservation_rd_id = rd.rd_id AND (str_to_date('$data_Check_in_date','%d-%m-%y') BETWEEN str_to_date(rn.reservation_check_in_date,'%d-%m-%y') AND str_to_date(rn.reservation_check_out_date,'%d-%m-%y') OR str_to_date('$data_Check_out_date','%d-%m-%y') BETWEEN str_to_date(rn.reservation_check_in_date,'%d-%m-%y') AND str_to_date(rn.reservation_check_out_date,'%d-%m-%y') OR str_to_date('$data_Check_in_date','%d-%m-%y') <= str_to_date(rn.reservation_check_in_date,'%d-%m-%y') AND str_to_date('$data_Check_out_date','%d-%m-%y') ) )) as reserve
14+
15+
FROM room_details rd LEFT JOIN reservation rn ON rd.rd_id = rn.reservation_rd_id WHERE NOT EXISTS
16+
17+
(
18+
19+
SELECT rn.* FROM reservation rn WHERE rn.reservation_rd_id = rd.rd_id
20+
21+
AND (str_to_date('$data_Check_in_date','%d-%m-%y') BETWEEN str_to_date(rn.reservation_check_in_date,'%d-%m-%y') AND str_to_date(rn.reservation_check_out_date,'%d-%m-%y') OR str_to_date('$data_Check_out_date','%d-%m-%y') BETWEEN str_to_date(rn.reservation_check_in_date,'%d-%m-%y') AND str_to_date(rn.reservation_check_out_date,'%d-%m-%y') OR str_to_date('$data_Check_in_date','%d-%m-%y') <= str_to_date(rn.reservation_check_in_date,'%d-%m-%y') AND str_to_date('$data_Check_out_date','%d-%m-%y') >= str_to_date(rn.reservation_check_out_date,'%d-%m-%y'))
22+
23+
AND (rd.rd_numberofrooms <= (select sum(rn.reservation_numberofrooms) as count_reserve_room from reservation as rn WHERE rn.reservation_rd_id = rd.rd_id AND (str_to_date('$data_Check_in_date','%d-%m-%y') BETWEEN str_to_date(rn.reservation_check_in_date,'%d-%m-%y') AND str_to_date(rn.reservation_check_out_date,'%d-%m-%y') OR str_to_date('$data_Check_out_date','%d-%m-%y') BETWEEN str_to_date(rn.reservation_check_in_date,'%d-%m-%y') AND str_to_date(rn.reservation_check_out_date,'%d-%m-%y') OR str_to_date('$data_Check_in_date','%d-%m-%y') <= str_to_date(rn.reservation_check_in_date,'%d-%m-%y') AND str_to_date('$data_Check_out_date','%d-%m-%y') ) ) )
24+
25+
)
26+
`;
27+
28+
suite
29+
.add('simpleSql', function () {
30+
let ast = parser.parse(simpleSql);
31+
let newSql = parser.stringify(ast);
32+
})
33+
.add('complexSql', function () {
34+
let ast = parser.parse(complexSql);
35+
let newSql = parser.stringify(ast);
36+
})
37+
.add('simpleParse', function () {
38+
simpleAst = parser.parse(simpleSql);
39+
})
40+
.add('complexParse', function () {
41+
complexAst = parser.parse(complexSql);
42+
})
43+
.add('simpleStringify', function () {
44+
parser.stringify(simpleAst);
45+
})
46+
.add('complexStringify', function () {
47+
parser.stringify(complexAst);
48+
})
49+
.on('cycle', function (event) {
50+
console.log('' + event.target);
51+
})
52+
.run();
53+

test/main.test.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict';
22

3-
const debug = true;
4-
const parser = require('../dist/parser/sqlParser');
3+
const debug = false;
4+
const parser = require('../');
55

66
const testParser = function (sql) {
77
let ast = parser.parse(sql);
@@ -23,6 +23,10 @@ const testParser = function (sql) {
2323

2424

2525
describe('simple sql support', function () {
26+
it('test0', function () {
27+
testParser('select a from b where c > 1 group by d order by e desc');
28+
});
29+
2630
it('test1', function () {
2731
testParser('select distinct max_statement_time = 1.2 a ');
2832
});

0 commit comments

Comments
 (0)