-
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.
Merge pull request #1273 from partiql/planner-main
Merge Planner to Main
- Loading branch information
Showing
297 changed files
with
34,407 additions
and
6,228 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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
group=org.partiql | ||
version=0.13.3-SNAPSHOT | ||
version=0.14.0-SNAPSHOT | ||
|
||
ossrhUsername=EMPTY | ||
ossrhPassword=EMPTY | ||
|
65 changes: 65 additions & 0 deletions
65
partiql-ast/src/main/kotlin/org/partiql/ast/helpers/ToBinder.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,65 @@ | ||
package org.partiql.ast.helpers | ||
|
||
import org.partiql.ast.Expr | ||
import org.partiql.ast.Identifier | ||
import org.partiql.ast.builder.ast | ||
import org.partiql.value.PartiQLValueExperimental | ||
import org.partiql.value.StringValue | ||
|
||
private val col = { index: () -> Int -> "_${index()}" } | ||
|
||
/** | ||
* Produces a "binder" (AS alias) for an expression following the given rules: | ||
* | ||
* 1. If item is an id, use the last symbol | ||
* 2. If item is a path with a final symbol step, use the symbol — else 4 | ||
* 3. If item is a cast, use the value name | ||
* 4. Else, use item index with prefix _ | ||
* | ||
* See https://github.com/partiql/partiql-lang-kotlin/issues/1122 | ||
*/ | ||
public fun Expr.toBinder(index: () -> Int): Identifier.Symbol = when (this) { | ||
is Expr.Var -> this.identifier.toBinder() | ||
is Expr.Path -> this.toBinder(index) | ||
is Expr.Cast -> this.value.toBinder(index) | ||
is Expr.SessionAttribute -> this.attribute.name.uppercase().toBinder() | ||
else -> col(index).toBinder() | ||
} | ||
|
||
/** | ||
* Simple toBinder that uses an int literal rather than a closure. | ||
* | ||
* @param index | ||
* @return | ||
*/ | ||
public fun Expr.toBinder(index: Int): Identifier.Symbol = toBinder { index } | ||
|
||
private fun String.toBinder(): Identifier.Symbol = ast { | ||
// Every binder preserves case | ||
identifierSymbol(this@toBinder, Identifier.CaseSensitivity.SENSITIVE) | ||
} | ||
|
||
private fun Identifier.toBinder(): Identifier.Symbol = when (this@toBinder) { | ||
is Identifier.Qualified -> when (steps.isEmpty()) { | ||
true -> root.symbol.toBinder() | ||
else -> steps.last().symbol.toBinder() | ||
} | ||
is Identifier.Symbol -> symbol.toBinder() | ||
} | ||
|
||
@OptIn(PartiQLValueExperimental::class) | ||
private fun Expr.Path.toBinder(index: () -> Int): Identifier.Symbol { | ||
if (steps.isEmpty()) return root.toBinder(index) | ||
return when (val last = steps.last()) { | ||
is Expr.Path.Step.Symbol -> last.symbol.toBinder() | ||
is Expr.Path.Step.Index -> { | ||
val k = last.key | ||
if (k is Expr.Lit && k.value is StringValue) { | ||
k.value.value!!.toBinder() | ||
} else { | ||
col(index).toBinder() | ||
} | ||
} | ||
else -> col(index).toBinder() | ||
} | ||
} |
25 changes: 25 additions & 0 deletions
25
partiql-ast/src/main/kotlin/org/partiql/ast/normalize/AstPass.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,25 @@ | ||
/* | ||
* Copyright 2022 Amazon.com, Inc. or its affiliates. All rights reserved. | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"). | ||
* You may not use this file except in compliance with the License. | ||
* A copy of the License is located at: | ||
* | ||
* http://aws.amazon.com/apache2.0/ | ||
* | ||
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific | ||
* language governing permissions and limitations under the License. | ||
*/ | ||
|
||
package org.partiql.ast.normalize | ||
|
||
import org.partiql.ast.Statement | ||
|
||
/** | ||
* Wraps a rewriter with a default entry point. | ||
*/ | ||
public interface AstPass { | ||
|
||
public fun apply(statement: Statement): Statement | ||
} |
29 changes: 29 additions & 0 deletions
29
partiql-ast/src/main/kotlin/org/partiql/ast/normalize/Normalize.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,29 @@ | ||
/* | ||
* Copyright 2022 Amazon.com, Inc. or its affiliates. All rights reserved. | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"). | ||
* You may not use this file except in compliance with the License. | ||
* A copy of the License is located at: | ||
* | ||
* http://aws.amazon.com/apache2.0/ | ||
* | ||
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific | ||
* language governing permissions and limitations under the License. | ||
*/ | ||
|
||
package org.partiql.ast.normalize | ||
|
||
import org.partiql.ast.Statement | ||
|
||
/** | ||
* AST normalization | ||
*/ | ||
public fun Statement.normalize(): Statement { | ||
// could be a fold, but this is nice for setting breakpoints | ||
var ast = this | ||
ast = NormalizeFromSource.apply(ast) | ||
ast = NormalizeSelect.apply(ast) | ||
ast = NormalizeGroupBy.apply(ast) | ||
return ast | ||
} |
63 changes: 63 additions & 0 deletions
63
partiql-ast/src/main/kotlin/org/partiql/ast/normalize/NormalizeFromSource.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,63 @@ | ||
/* | ||
* Copyright 2022 Amazon.com, Inc. or its affiliates. All rights reserved. | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"). | ||
* You may not use this file except in compliance with the License. | ||
* A copy of the License is located at: | ||
* | ||
* http://aws.amazon.com/apache2.0/ | ||
* | ||
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific | ||
* language governing permissions and limitations under the License. | ||
*/ | ||
|
||
package org.partiql.ast.normalize | ||
|
||
import org.partiql.ast.AstNode | ||
import org.partiql.ast.Expr | ||
import org.partiql.ast.From | ||
import org.partiql.ast.Statement | ||
import org.partiql.ast.fromJoin | ||
import org.partiql.ast.helpers.toBinder | ||
import org.partiql.ast.util.AstRewriter | ||
|
||
/** | ||
* Assign aliases to any FROM source which does not have one. | ||
*/ | ||
internal object NormalizeFromSource : AstPass { | ||
|
||
override fun apply(statement: Statement): Statement = Visitor.visitStatement(statement, 0) as Statement | ||
|
||
private object Visitor : AstRewriter<Int>() { | ||
|
||
// Each SFW starts the ctx count again. | ||
override fun visitExprSFW(node: Expr.SFW, ctx: Int): AstNode = super.visitExprSFW(node, 0) | ||
|
||
override fun visitStatementDMLBatchLegacy(node: Statement.DML.BatchLegacy, ctx: Int): AstNode = | ||
super.visitStatementDMLBatchLegacy(node, 0) | ||
|
||
override fun visitFrom(node: From, ctx: Int) = super.visitFrom(node, ctx) as From | ||
|
||
override fun visitFromJoin(node: From.Join, ctx: Int): From { | ||
val lhs = visitFrom(node.lhs, ctx) | ||
val rhs = visitFrom(node.rhs, ctx + 1) | ||
val condition = node.condition?.let { visitExpr(it, ctx) as Expr } | ||
return if (lhs !== node.lhs || rhs !== node.rhs || condition !== node.condition) { | ||
fromJoin(lhs, rhs, node.type, condition) | ||
} else { | ||
node | ||
} | ||
} | ||
|
||
override fun visitFromValue(node: From.Value, ctx: Int): From { | ||
val expr = visitExpr(node.expr, ctx) as Expr | ||
val asAlias = node.asAlias ?: expr.toBinder(ctx) | ||
return if (expr !== node.expr || asAlias !== node.asAlias) { | ||
node.copy(expr = expr, asAlias = asAlias) | ||
} else { | ||
node | ||
} | ||
} | ||
} | ||
} |
46 changes: 46 additions & 0 deletions
46
partiql-ast/src/main/kotlin/org/partiql/ast/normalize/NormalizeGroupBy.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,46 @@ | ||
/* | ||
* Copyright 2022 Amazon.com, Inc. or its affiliates. All rights reserved. | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"). | ||
* You may not use this file except in compliance with the License. | ||
* A copy of the License is located at: | ||
* | ||
* http://aws.amazon.com/apache2.0/ | ||
* | ||
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific | ||
* language governing permissions and limitations under the License. | ||
*/ | ||
|
||
package org.partiql.ast.normalize | ||
|
||
import org.partiql.ast.Expr | ||
import org.partiql.ast.GroupBy | ||
import org.partiql.ast.Statement | ||
import org.partiql.ast.groupByKey | ||
import org.partiql.ast.helpers.toBinder | ||
import org.partiql.ast.util.AstRewriter | ||
|
||
/** | ||
* Adds a unique binder to each group key. | ||
*/ | ||
object NormalizeGroupBy : AstPass { | ||
|
||
override fun apply(statement: Statement) = Visitor.visitStatement(statement, 0) as Statement | ||
|
||
private object Visitor : AstRewriter<Int>() { | ||
|
||
override fun visitGroupByKey(node: GroupBy.Key, ctx: Int): GroupBy.Key { | ||
val expr = visitExpr(node.expr, 0) as Expr | ||
val alias = when (node.asAlias) { | ||
null -> expr.toBinder(ctx) | ||
else -> node.asAlias | ||
} | ||
return if (expr !== node.expr || alias !== node.asAlias) { | ||
groupByKey(expr, alias) | ||
} else { | ||
node | ||
} | ||
} | ||
} | ||
} |
Oops, something went wrong.
34f12ce
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
250.85717052346754
us/op272.939420636338
us/op0.92
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithoutInterruptible
264.0147676980644
us/op296.8528221440777
us/op0.89
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithInterruptible
247.6104755220105
us/op231.47540949204364
us/op1.07
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithoutInterruptible
242.76391816623374
us/op237.0619845250157
us/op1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithInterruptible
185.1002631591023
us/op184.93894266321664
us/op1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithoutInterruptible
178.9196424729484
us/op180.55349981080184
us/op0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithInterruptible
13004365.66495
us/op13281266.369300002
us/op0.98
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithoutInterruptible
13112876.4435
us/op13358158.469349999
us/op0.98
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithInterruptible
5158427.9589
us/op5150652.127
us/op1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithoutInterruptible
5070589.9451
us/op4878357.37155
us/op1.04
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithInterruptible
38.73259834958345
us/op38.36478305566007
us/op1.01
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithoutInterruptible
38.59073277531859
us/op38.186633830515675
us/op1.01
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithInterruptible
12923071.721599998
us/op13379363.29525
us/op0.97
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithoutInterruptible
13087465.3357
us/op13073335.508350002
us/op1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithInterruptible
5115480.59405
us/op5070788.5437
us/op1.01
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithoutInterruptible
5162147.594199999
us/op4977260.814
us/op1.04
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithInterruptible
101940.70612272728
us/op94928.99769545454
us/op1.07
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithoutInterruptible
95510.55520454545
us/op96580.55767954547
us/op0.99
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler15
80.5340551022043
us/op82.02981422921913
us/op0.98
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler30
157.25711575854183
us/op155.32154367125563
us/op1.01
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator15
377091.7091666667
us/op380262.36841666664
us/op0.99
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30
742123.9897000002
us/op724842.58825
us/op1.02
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30WithData10
7432243.374
us/op7191651.257500002
us/op1.03
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser15
129.82872098555305
us/op129.0536789103998
us/op1.01
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser30
247.38171824680148
us/op244.3821958462715
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameCaseWhenThen
33.476718267578576
us/op33.39498884620449
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery
41.969497907675496
us/op41.417408328399965
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery01
219.71756709944694
us/op221.05858005563854
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery02
381.12175601852454
us/op373.4330891604737
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExceptUnionIntersectSixty
155.50619839746793
us/op156.7659217579199
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExec20Expressions
45.66335583106178
us/op45.664002203887
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameFromLet
34.10774850729784
us/op33.89464996085641
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPattern
31.65148277257523
us/op32.55511008551693
us/op0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPreFilters
57.963322199695064
us/op58.57035793810735
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGroupLimit
39.4581375494506
us/op38.768582054263575
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameLongFromSourceOrderBy
46.9047497790505
us/op48.03284430084576
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameManyJoins
49.03466511926386
us/op49.88624298426381
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedAggregates
82.85026307541631
us/op84.99401531767577
us/op0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedParen
13.292440215966545
us/op13.562248316651125
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNamePivot
50.13842315919288
us/op50.692072850311554
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery15OrsAndLikes
157.25797771285352
us/op155.9216744602099
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery30Plus
86.59237751448855
us/op86.71530876466197
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFunc
37.49832528393132
us/op37.74400378750755
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFuncInProjection
42.66060288657716
us/op42.43953758755478
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryList
60.85974959753645
us/op58.75074145354218
us/op1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryNestedSelect
571.2524971794882
us/op542.6369462098878
us/op1.05
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuerySimple
12.214185572636184
us/op12.264737848281271
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralJoins
16.79526717565401
us/op16.8168192632193
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralProjections
56.9297239211402
us/op55.35275379656309
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralSelect
157.68985151687843
us/op158.21507957827757
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSimpleInsert
23.477201331768175
us/op23.66773539701682
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeJoins
16.498380446974416
us/op16.523460165935585
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeProjections
23.637085863102357
us/op23.57449082514477
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeSelect
39.94207253387118
us/op40.19413863854283
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameTimeZone
18.89058420790313
us/op19.829348725677395
us/op0.95
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery
196.942966836588
us/op198.54444453104037
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery01
763.7340890436271
us/op780.3937705614001
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameCaseWhenThen
18.770174007327313
us/op18.518330220706662
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery
187.23056275535077
us/op187.49962240513642
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery01
85.25850966838185
us/op87.67653157847717
us/op0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExceptUnionIntersectSixty
168.79463230480997
us/op164.71023004214553
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExec20Expressions
46.16062985436926
us/op46.037578909647486
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameFromLet
27.790205697124595
us/op27.94843677439938
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPattern
31.34859543613601
us/op31.887945162813338
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPreFilters
53.552992021907755
us/op54.187696388371194
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGroupLimit
25.16097213956562
us/op24.970638413469224
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameLongFromSourceOrderBy
99.48521585122378
us/op98.85844034326325
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameManyJoins
34.15902151493215
us/op33.19544247575394
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedAggregates
72.40342836397228
us/op70.59994338606582
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedParen
62.277226530695806
us/op60.51076123470938
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNamePivot
47.68770091589585
us/op48.46330869530025
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery15OrsAndLikes
129.5149013664872
us/op130.66023103725917
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery30Plus
45.72208793854822
us/op46.92568466241605
us/op0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFunc
97.6097973582139
us/op96.99703285288845
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFuncInProjection
64.21390922439556
us/op63.87844642564029
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryList
55.67578640209181
us/op58.375394483588046
us/op0.95
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryNestedSelect
109.29174318177851
us/op107.90595262057244
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuerySimple
8.46934236749912
us/op8.5581022380327
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralJoins
52.55499801701253
us/op53.29446795240036
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralProjections
40.8868177604024
us/op39.95195209908942
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralSelect
75.52404136020078
us/op75.93533558007368
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSimpleInsert
14.98006862316725
us/op14.766359652530713
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeJoins
14.76505297535708
us/op14.871550379257574
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeProjections
13.162339022259768
us/op13.489086334843748
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeSelect
24.646262658907776
us/op24.69435522290872
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameTimeZone
5.925204337798812
us/op6.216907658666378
us/op0.95
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery
297.18337041700295
us/op296.153165534966
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery01
800.8234647786308
us/op840.041889186351
us/op0.95
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLCompiler
7.006817344976521
us/op6.834774257028762
us/op1.03
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLEvaluator
1.8872718264533475
us/op2.1304661647388166
us/op0.89
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLParser
8.13287204176044
us/op7.572821197830768
us/op1.07
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameCaseWhenThen
32.464676355765576
us/op32.327008793623676
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery
39.71720599879872
us/op39.85341024503984
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery01
219.47384190745305
us/op224.64561319494413
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery02
378.63147696196256
us/op372.93736726898976
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExceptUnionIntersectSixty
155.99746543916356
us/op156.10520891537377
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExec20Expressions
44.14796542732314
us/op44.63633197209188
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameFromLet
32.170977130583125
us/op32.386501370451406
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPattern
31.4518733058606
us/op31.030581910819876
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPreFilters
56.291461102476
us/op56.69221488581659
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGroupLimit
40.39829006376598
us/op39.51192806384226
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameLongFromSourceOrderBy
46.971481544149
us/op47.749774745999424
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameManyJoins
48.186078527728036
us/op49.30390525902709
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedAggregates
83.88463676987217
us/op82.00161078552449
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedParen
13.060853380331134
us/op13.131492671777597
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNamePivot
50.268821589742124
us/op50.66696560751478
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery15OrsAndLikes
155.97664506486868
us/op157.47783222220315
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery30Plus
85.43122527502325
us/op86.15305418726642
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFunc
37.5186407049413
us/op37.81814342135912
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFuncInProjection
42.3173874697699
us/op41.92519671611046
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryList
57.98808146336732
us/op59.310979845697204
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryNestedSelect
542.6887114274433
us/op549.8333851282016
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuerySimple
11.663229228964441
us/op11.705829536438436
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralJoins
16.242308630733824
us/op16.310724508445514
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralProjections
53.38826858154016
us/op54.41104891027803
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralSelect
150.56854463118907
us/op156.33963389760092
us/op0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSimpleInsert
21.74391379885973
us/op22.13147804869117
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeJoins
16.050046483123875
us/op16.385176484478674
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeProjections
21.773194558445873
us/op22.239201971984503
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeSelect
38.623891793798364
us/op39.203805399043354
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameTimeZone
18.69690993142397
us/op19.021708002440615
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery
191.45739740363945
us/op191.2737280841547
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery01
742.9136606851835
us/op765.8185333914957
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameCaseWhenThen
24.067075110277095
us/op24.172569771601125
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery
241.90707633394499
us/oporg.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery01
121.6478579900185
us/op121.102069870989
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExceptUnionIntersectSixty
262.5974416307472
us/op268.7710873852081
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExec20Expressions
64.02917078336226
us/op65.42878112754514
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameFromLet
39.3900997458917
us/op39.89639191359934
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPattern
46.167635456544545
us/op47.37544259053447
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPreFilters
78.55412611218213
us/op77.4471104915385
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGroupLimit
28.459463006042245
us/op28.723957613759353
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameLongFromSourceOrderBy
122.08861750051577
us/op118.59706042585478
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameManyJoins
43.42923767609933
us/op41.581994437416355
us/op1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedAggregates
101.71477375600689
us/op99.81246820077254
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedParen
67.66326242560274
us/op65.29979129901186
us/op1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNamePivot
64.12711857552786
us/op63.158331606515084
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery15OrsAndLikes
192.5622159195974
us/op191.45177636186799
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery30Plus
57.99911931757864
us/op61.466422836488675
us/op0.94
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFunc
113.4166899573268
us/op115.95902492270743
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFuncInProjection
82.57643792430392
us/op81.53363047608272
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryList
69.84520771110519
us/op70.7536522858514
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryNestedSelect
136.1677834472871
us/op139.53214391942606
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuerySimple
12.132323983094086
us/op12.597845479695986
us/op0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralJoins
79.77621928596108
us/op77.22782909432729
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralProjections
63.5852934515306
us/op61.63776082313391
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralSelect
114.59984344691436
us/op118.9936912208448
us/op0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSimpleInsert
21.95060013290273
us/op22.073712406954872
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeJoins
19.889804078065275
us/op20.71176748287018
us/op0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeProjections
17.871946484442706
us/op18.277239858367675
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeSelect
36.05267222920981
us/op36.367754578110564
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameTimeZone
7.5760347689112395
us/op7.498100623694995
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery
463.3445623368381
us/op463.5002124143592
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery01
1147.6626611502502
us/op1202.1102669166928
us/op0.95
This comment was automatically generated by workflow using github-action-benchmark.