Skip to content

Commit 6049fd7

Browse files
feat: eliminate another expensive syntactic lookahead
Signed-off-by: Andreas Reichel <andreas@manticore-projects.com>
1 parent ac17513 commit 6049fd7

File tree

3 files changed

+7
-19
lines changed

3 files changed

+7
-19
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ This has been resolved in JSQLParser 5.3-SNAPSHOT and JMH benchmarks have been a
7676

7777
```text
7878
Benchmark (version) Mode Cnt Score Error Units
79-
JSQLParserBenchmark.parseSQLStatements latest avgt 30 83.504 ± 1.557 ms/op <-- `FunctionAllColumns()` disabled
79+
JSQLParserBenchmark.parseSQLStatements latest avgt 30 78.287 ± 4.730 ms/op <-- `FunctionAllColumns()` disabled
8080
JSQLParserBenchmark.parseSQLStatements 5.2 avgt 30 400.876 ± 8.291 ms/op
8181
JSQLParserBenchmark.parseSQLStatements 5.1 avgt 30 85.731 ± 1.288 ms/op
8282
```

src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt

+3-7
Original file line numberDiff line numberDiff line change
@@ -2438,16 +2438,12 @@ Select Select() #Select:
24382438
Alias alias = null;
24392439
}
24402440
{
2441-
(
24422441

2443-
//@todo: avoid this expensive semantic look ahead
2444-
LOOKAHEAD( [ WithList() ] FromQuery()) (
2445-
[ with=WithList() ]
2446-
select = FromQuery()
2447-
)
2442+
[ with=WithList() ]
2443+
(
2444+
LOOKAHEAD(3) select = FromQuery()
24482445
|
24492446
(
2450-
[ with=WithList() ]
24512447
(
24522448
LOOKAHEAD(3) select = PlainSelect()
24532449
|

src/site/sphinx/_static/jmh_results.txt

+3-11
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,7 @@ JSQLParserBenchmark.parseSQLStatements latest avgt 30 83.504 ± 1.557
1919
JSQLParserBenchmark.parseSQLStatements 5.2 avgt 30 400.876 ± 8.291 ms/op
2020
JSQLParserBenchmark.parseSQLStatements 5.1 avgt 30 85.731 ± 1.288 ms/op
2121

22-
2322
-- Token Manipulation
24-
Before Optimization (version) Mode Cnt Score Error Units
25-
JSQLParserBenchmark.parseQuotedText latest avgt 30 0.421 ± 0.008 ms/op
26-
27-
After Optimization (version) Mode Cnt Score Error Units
28-
JSQLParserBenchmark.parseQuotedText latest avgt 30 0.366 ± 0.009 ms/op
29-
30-
Benchmark (version) Mode Cnt Score Error Units
31-
JSQLParserBenchmark.parseQuotedText latest avgt 30 0.414 ± 0.003 ms/op
32-
Benchmark (version) Mode Cnt Score Error Units
33-
JSQLParserBenchmark.parseQuotedText latest avgt 30 0.418 ± 0.003 ms/op
23+
JSQLParserBenchmark.parseSQLStatements latest avgt 30 78.287 ± 4.730 ms/op
24+
JSQLParserBenchmark.parseSQLStatements 5.2 avgt 30 356.553 ± 24.823 ms/op
25+
JSQLParserBenchmark.parseSQLStatements 5.1 avgt 30 86.815 ± 1.771 ms/op

0 commit comments

Comments
 (0)