-
Notifications
You must be signed in to change notification settings - Fork 62
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
424 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
164 changes: 164 additions & 0 deletions
164
partiql-planner/src/test/kotlin/org/partiql/planner/PlanTest.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,164 @@ | ||
package org.partiql.planner | ||
|
||
import org.junit.jupiter.api.DynamicContainer | ||
import org.junit.jupiter.api.DynamicContainer.dynamicContainer | ||
import org.junit.jupiter.api.DynamicNode | ||
import org.junit.jupiter.api.DynamicTest | ||
import org.junit.jupiter.api.TestFactory | ||
import org.partiql.parser.PartiQLParser | ||
import org.partiql.plan.PlanNode | ||
import org.partiql.plan.debug.PlanPrinter | ||
import org.partiql.planner.test.PartiQLTest | ||
import org.partiql.planner.test.PartiQLTestProvider | ||
import org.partiql.planner.util.PlanNodeEquivalentVisitor | ||
import org.partiql.planner.util.ProblemCollector | ||
import org.partiql.plugins.memory.MemoryConnector | ||
import org.partiql.types.BagType | ||
import org.partiql.types.StaticType | ||
import org.partiql.types.StructType | ||
import org.partiql.types.TupleConstraint | ||
import java.io.File | ||
import java.nio.file.Path | ||
import java.time.Instant | ||
import java.util.stream.Stream | ||
import kotlin.io.path.toPath | ||
|
||
// Prevent Unintentional break of the plan | ||
// We currently don't have a good way to assert on the result plan | ||
// so we assert on having the partiql text. | ||
// The input text and the normalized partiql text should produce identical plan. | ||
// I.e., | ||
// if the input text is `SELECT a,b,c FROM T` | ||
// the produced plan will be identical as the normalized query: | ||
// `SELECT "T"['a'] AS "a", "T"['b'] AS "b", "T"['c'] AS "c" FROM "default"."T" AS "T";` | ||
class PlanTest { | ||
val root: Path = this::class.java.getResource("/outputs")!!.toURI().toPath() | ||
|
||
val input = PartiQLTestProvider().apply { load() } | ||
|
||
val session: (PartiQLTest.Key) -> PartiQLPlanner.Session = { key -> | ||
PartiQLPlanner.Session( | ||
queryId = key.toString(), | ||
userId = "user_id", | ||
currentCatalog = "default", | ||
currentDirectory = listOf(), | ||
instant = Instant.now(), | ||
) | ||
} | ||
|
||
val metadata = MemoryConnector.Metadata.of( | ||
"default.t" to BagType( | ||
StructType( | ||
listOf( | ||
StructType.Field("a", StaticType.BOOL), | ||
StructType.Field("b", StaticType.INT4), | ||
StructType.Field("c", StaticType.STRING), | ||
StructType.Field( | ||
"d", | ||
StructType( | ||
listOf(StructType.Field("e", StaticType.STRING)), | ||
contentClosed = true, | ||
emptyList(), | ||
setOf(TupleConstraint.Open(false)), | ||
emptyMap() | ||
) | ||
), | ||
StructType.Field("x", StaticType.ANY), | ||
StructType.Field("z", StaticType.STRING), | ||
StructType.Field("v", StaticType.STRING), | ||
), | ||
contentClosed = true, | ||
emptyList(), | ||
setOf(TupleConstraint.Open(false)), | ||
emptyMap() | ||
) | ||
) | ||
) | ||
|
||
val pipeline: (PartiQLTest) -> PartiQLPlanner.Result = { test -> | ||
val problemCollector = ProblemCollector() | ||
val ast = PartiQLParser.default().parse(test.statement).root | ||
val planner = PartiQLPlannerBuilder() | ||
.addCatalog("default", metadata) | ||
.build() | ||
planner.plan(ast, session(test.key), problemCollector) | ||
} | ||
|
||
@TestFactory | ||
fun factory(): Stream<DynamicNode> { | ||
val r = root.toFile() | ||
return r | ||
.listFiles { f -> f.isDirectory }!! | ||
.mapNotNull { load(r, it) } | ||
.stream() | ||
} | ||
|
||
private fun load(parent: File, file: File): DynamicNode? = when { | ||
file.isDirectory -> loadD(parent, file) | ||
file.extension == "sql" -> loadF(parent, file) | ||
else -> null | ||
} | ||
|
||
private fun loadD(parent: File, file: File): DynamicContainer { | ||
val name = file.name | ||
val children = file.listFiles()!!.map { load(file, it) } | ||
return dynamicContainer(name, children) | ||
} | ||
|
||
private fun loadF(parent: File, file: File): DynamicContainer { | ||
val group = parent.name | ||
val tests = parse(group, file) | ||
|
||
val children = tests.map { | ||
// Prepare | ||
val displayName = it.key.toString() | ||
|
||
// Assert | ||
DynamicTest.dynamicTest(displayName) { | ||
val input = input[it.key] ?: error("no test cases") | ||
|
||
val inputPlan = pipeline.invoke(input).plan | ||
val outputPlan = pipeline.invoke(it).plan | ||
assert(inputPlan.isEquaivalentTo(outputPlan)) { | ||
buildString { | ||
this.appendLine("expect plan equivalence") | ||
PlanPrinter.append(this, inputPlan) | ||
PlanPrinter.append(this, outputPlan) | ||
} | ||
} | ||
} | ||
} | ||
return dynamicContainer(file.nameWithoutExtension, children) | ||
} | ||
|
||
private fun parse(group: String, file: File): List<PartiQLTest> { | ||
val tests = mutableListOf<PartiQLTest>() | ||
var name = "" | ||
val statement = StringBuilder() | ||
for (line in file.readLines()) { | ||
// start of test | ||
if (line.startsWith("--#[") and line.endsWith("]")) { | ||
name = line.substring(4, line.length - 1) | ||
statement.clear() | ||
} | ||
if (name.isNotEmpty() && line.isNotBlank()) { | ||
// accumulating test statement | ||
statement.appendLine(line) | ||
} else { | ||
// skip these lines | ||
continue | ||
} | ||
// Finish & Reset | ||
if (line.endsWith(";")) { | ||
val key = PartiQLTest.Key(group, name) | ||
tests.add(PartiQLTest(key, statement.toString())) | ||
name = "" | ||
statement.clear() | ||
} | ||
} | ||
return tests | ||
} | ||
|
||
private fun PlanNode.isEquaivalentTo(other: PlanNode): Boolean = | ||
PlanNodeEquivalentVisitor().visit(this, other) | ||
} |
Oops, something went wrong.
acec206
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JMH Benchmark
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithInterruptible
258.0905606986938
us/op266.1106960663937
us/op0.97
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithoutInterruptible
265.3169041255939
us/op263.0301460486381
us/op1.01
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithInterruptible
255.14058853622004
us/op235.6041135456996
us/op1.08
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithoutInterruptible
249.0682832468392
us/op241.81172356070365
us/op1.03
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithInterruptible
177.3827200087847
us/op176.5881523833933
us/op1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithoutInterruptible
179.11608418510548
us/op174.88668130382374
us/op1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithInterruptible
12894360.098249998
us/op12900369.973050002
us/op1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithoutInterruptible
13009037.5599
us/op13012507.075650003
us/op1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithInterruptible
5219523.4860499995
us/op4775772.735400001
us/op1.09
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithoutInterruptible
5066602.5507
us/op5055727.2162
us/op1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithInterruptible
38.57328101465763
us/op37.996122371674396
us/op1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithoutInterruptible
39.982674942234304
us/op37.268580622187564
us/op1.07
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithInterruptible
12853074.607700001
us/op13396581.445949998
us/op0.96
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithoutInterruptible
12831470.45695
us/op12875063.370000001
us/op1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithInterruptible
4960708.119000001
us/op5071326.09735
us/op0.98
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithoutInterruptible
5136049.990399999
us/op5062682.31325
us/op1.01
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithInterruptible
92981.02920909092
us/op92784.59542499998
us/op1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithoutInterruptible
91793.50681742425
us/op99718.62835181819
us/op0.92
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler15
78.13404837532431
us/op80.41844366997447
us/op0.97
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler30
159.7364613390992
us/op153.04058001485686
us/op1.04
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator15
367235.18595
us/op376113.6236333333
us/op0.98
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30
750135.706675
us/op741919.5276249999
us/op1.01
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30WithData10
7345180.662300001
us/op7201390.168100001
us/op1.02
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser15
130.64789005902998
us/op130.18847512470933
us/op1.00
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser30
254.3580154350957
us/op251.1761852603819
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameCaseWhenThen
32.852553124906535
us/op33.54835501918389
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery
41.57713241297801
us/op40.32526232198127
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery01
219.8612975569569
us/op220.61713275213032
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery02
379.0709382551735
us/op385.28569878266273
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExceptUnionIntersectSixty
157.62247943413027
us/op156.53881486074636
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExec20Expressions
46.39147047126578
us/op46.41107058976031
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameFromLet
34.302067007697374
us/op34.43717278159993
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPattern
32.14332140607512
us/op32.002292361713685
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPreFilters
57.33661736979512
us/op58.81510507355428
us/op0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGroupLimit
39.15434384300045
us/op40.01701074420786
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameLongFromSourceOrderBy
46.60141242820505
us/op47.680010872149126
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameManyJoins
48.68584790670691
us/op49.8888378199138
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedAggregates
84.90368742576166
us/op85.42732438021747
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedParen
13.682548582409183
us/op13.618147456097025
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNamePivot
50.5304780272048
us/op52.535055663215516
us/op0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery15OrsAndLikes
154.2467598243712
us/op156.52803336908968
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery30Plus
87.69916767383764
us/op84.85635063020734
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFunc
38.21531585067722
us/op39.32151047396127
us/op0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFuncInProjection
42.92925177099271
us/op42.508631115582574
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryList
58.14986678713482
us/op61.59680506917052
us/op0.94
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryNestedSelect
546.6702299705697
us/op548.9991866560854
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuerySimple
12.135435830450039
us/op12.414825986867188
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralJoins
17.110152639452988
us/op16.737051599764317
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralProjections
56.43248644650737
us/op56.32453612319032
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralSelect
158.25368319582356
us/op157.96979882065932
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSimpleInsert
23.468843071926564
us/op22.378749157221506
us/op1.05
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeJoins
16.76867193573719
us/op16.74239892445906
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeProjections
23.067591207145842
us/op22.90839195236505
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeSelect
40.40683147246811
us/op39.62840294132991
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameTimeZone
19.272389656342195
us/op19.32088413533129
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery
189.65725209383675
us/op205.44871359614723
us/op0.92
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery01
748.2527432379637
us/op749.5230690639465
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameCaseWhenThen
18.951859059334332
us/op18.273920273133875
us/op1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery
180.73406961198862
us/op181.4462595195363
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery01
84.68267836735603
us/op87.25661403245972
us/op0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExceptUnionIntersectSixty
164.4306328169153
us/op163.18992562486764
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExec20Expressions
44.95658268442691
us/op46.358466466790965
us/op0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameFromLet
27.03941993670203
us/op27.177254624776776
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPattern
31.087788979376217
us/op31.316168424012027
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPreFilters
53.375484956910654
us/op55.86567811489084
us/op0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGroupLimit
25.05372632971808
us/op25.618521544126548
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameLongFromSourceOrderBy
96.24458382724592
us/op96.89135871113129
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameManyJoins
33.21659964656635
us/op33.80403136964711
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedAggregates
70.88938582143376
us/op71.37769549058095
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedParen
59.003604761995476
us/op60.86581690124077
us/op0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNamePivot
47.944896475513076
us/op49.99716393255942
us/op0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery15OrsAndLikes
127.55017045542195
us/op128.63477330878703
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery30Plus
45.98847221067075
us/op44.99915479245525
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFunc
97.33003871804922
us/op97.19568657841232
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFuncInProjection
62.87857788391075
us/op64.54677049169877
us/op0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryList
55.815646412867046
us/op57.67796513080143
us/op0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryNestedSelect
103.72860802989183
us/op101.6530600980744
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuerySimple
8.505668633517114
us/op8.580428756860886
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralJoins
52.61442250418677
us/op54.59098004278792
us/op0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralProjections
41.36391597700767
us/op39.59219502972362
us/op1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralSelect
73.73204020685327
us/op75.11959509343258
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSimpleInsert
15.051939512255899
us/op15.098602647627152
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeJoins
14.580782493804733
us/op14.726173864077571
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeProjections
13.042784963341708
us/op13.24006573952978
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeSelect
24.27254211716882
us/op24.31115371990986
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameTimeZone
5.991055781204679
us/op5.884717694663545
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery
302.308346027087
us/op296.3298685353642
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery01
817.4651031265163
us/op832.9715328536779
us/op0.98
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLCompiler
6.944411658777021
us/op7.801130742041641
us/op0.89
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLEvaluator
1.8090385677775767
us/op1.8212310640099179
us/op0.99
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLParser
7.443953260302083
us/op7.730989610407152
us/op0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameCaseWhenThen
32.039728868820326
us/op31.94498011079923
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery
41.15485346701944
us/op43.485889037627935
us/op0.95
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery01
218.17812948348063
us/op221.87935420510684
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery02
375.2576879422302
us/op370.67956845069693
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExceptUnionIntersectSixty
155.7888213553749
us/op159.98302954064533
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExec20Expressions
44.35817827898698
us/op45.08933669044036
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameFromLet
32.75123141226956
us/op32.8358413473864
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPattern
30.948276593528664
us/op31.310942955440247
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPreFilters
55.405499946797576
us/op56.35223996870813
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGroupLimit
38.83489762826632
us/op39.263246778514514
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameLongFromSourceOrderBy
48.51247424515854
us/op48.12515141487156
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameManyJoins
48.47292957876666
us/op47.9740921871019
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedAggregates
84.7806595704794
us/op83.20269230550672
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedParen
13.14094515274103
us/op13.011010595028036
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNamePivot
51.321268881123636
us/op50.97107628277452
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery15OrsAndLikes
153.8449289490063
us/op154.45735370867925
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery30Plus
86.27875744564625
us/op85.29072044394196
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFunc
37.74881404761315
us/op38.92305439388203
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFuncInProjection
42.012409005265226
us/op42.23924830594345
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryList
58.37012114784991
us/op57.88240177465921
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryNestedSelect
548.2593255507928
us/op551.6488520622046
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuerySimple
11.77612373747597
us/op11.868802361082343
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralJoins
15.876475078645967
us/op16.23260295584476
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralProjections
52.91271876191663
us/op53.27185957225762
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralSelect
157.43846411782084
us/op158.82950377877845
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSimpleInsert
21.750816041391708
us/op22.42109857705607
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeJoins
16.134762517606426
us/op15.91837715480724
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeProjections
21.607298087564452
us/op22.016998259299022
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeSelect
39.36013744483016
us/op39.439792028607336
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameTimeZone
18.52663257247157
us/op18.36799338889295
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery
195.67549107068868
us/op196.0496798019705
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery01
738.1805222370629
us/op733.671156890465
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameCaseWhenThen
23.573978327509383
us/op24.034858328791678
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery
242.52979604902688
us/op245.34118987592447
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery01
120.92672493349646
us/op121.55564766745015
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExceptUnionIntersectSixty
268.80387263236173
us/op267.10742278572604
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExec20Expressions
62.52629902189583
us/op63.30558713686372
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameFromLet
38.16737617355424
us/op39.508343930923864
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPattern
44.63371612922454
us/op45.78096838711616
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPreFilters
79.35250795726986
us/op81.81880592812139
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGroupLimit
28.135882131848422
us/op28.173385666192747
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameLongFromSourceOrderBy
115.10955791010699
us/op118.34733058112613
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameManyJoins
42.431497248054185
us/op43.21759721128904
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedAggregates
95.72287042447518
us/op101.43805992874954
us/op0.94
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedParen
64.69325076657334
us/op66.49633835840888
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNamePivot
65.52036502148512
us/op64.3516999442065
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery15OrsAndLikes
188.79205423643256
us/op188.87852565562463
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery30Plus
57.54379923050853
us/op60.460510209058725
us/op0.95
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFunc
112.60630780265797
us/op116.31033508839558
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFuncInProjection
78.57584057039757
us/op81.53892882052654
us/op0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryList
68.63586985899032
us/op69.73506777735219
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryNestedSelect
139.2260722721159
us/op143.37861211356264
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuerySimple
11.949465175043734
us/op12.032942727527011
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralJoins
78.60613495781878
us/op78.5603937975414
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralProjections
61.62271120599139
us/op62.89224466137417
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralSelect
114.5980090530511
us/op114.52835482571368
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSimpleInsert
22.00777542973768
us/op21.75879661760872
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeJoins
20.02202134082227
us/op19.914769282813477
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeProjections
18.068317877010035
us/op18.65965370026667
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeSelect
34.41968097913906
us/op34.352229759188674
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameTimeZone
7.3957508120833095
us/op7.276134185627981
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery
450.94906140861997
us/op462.82076753491117
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery01
1148.395016121329
us/op1137.8063191870972
us/op1.01
This comment was automatically generated by workflow using github-action-benchmark.