-
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.
Replaces deprecated SqlBlock with optimized version (#1564)
- Loading branch information
Showing
10 changed files
with
647 additions
and
1,712 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,76 +1,20 @@ | ||
package org.partiql.ast.sql | ||
|
||
import org.partiql.ast.AstNode | ||
import org.partiql.ast.sql.internal.InternalSqlDialect | ||
import org.partiql.ast.sql.internal.InternalSqlLayout | ||
|
||
/** | ||
* No argument uses optimized internal. Leaving older ones for backwards-compatibility. | ||
* Pretty-print this [AstNode] as SQL text with the given (or standard) [SqlLayout] and [SqlDialect]. | ||
* | ||
* @see SqlLayout | ||
* @see SqlDialect | ||
*/ | ||
public fun AstNode.sql(): String { | ||
val head = InternalSqlDialect.PARTIQL.apply(this) | ||
return InternalSqlLayout.format(head) | ||
} | ||
@JvmOverloads | ||
fun AstNode.sql( | ||
layout: SqlLayout = SqlLayout.STANDARD, | ||
dialect: SqlDialect = SqlDialect.STANDARD, | ||
): String = dialect.transform(this).sql(layout) | ||
|
||
/** | ||
* Pretty-print this [AstNode] as SQL text with the given [SqlLayout] | ||
* Write this [SqlBlock] tree as SQL text with the given [SqlLayout]. | ||
*/ | ||
@Deprecated("To be removed in the next major version") | ||
public fun AstNode.sql( | ||
layout: SqlLayout = SqlLayout.DEFAULT, | ||
): String = SqlDialect.PARTIQL.apply(this).sql(layout) | ||
|
||
/** | ||
* Pretty-print this [AstNode] as SQL text with the given [SqlDialect] | ||
*/ | ||
@Deprecated("To be removed in the next major version") | ||
public fun AstNode.sql( | ||
dialect: SqlDialect = SqlDialect.PARTIQL, | ||
): String = dialect.apply(this).sql(SqlLayout.DEFAULT) | ||
|
||
/** | ||
* Pretty-print this [AstNode] as SQL text with the given [SqlLayout] and [SqlDialect] | ||
*/ | ||
@Deprecated("To be removed in the next major version") | ||
public fun AstNode.sql( | ||
layout: SqlLayout, | ||
dialect: SqlDialect, | ||
): String = dialect.apply(this).sql(layout) | ||
|
||
// a <> b <-> a concat b | ||
|
||
internal infix fun SqlBlock.concat(rhs: SqlBlock): SqlBlock = link(this, rhs) | ||
|
||
internal infix fun SqlBlock.concat(text: String): SqlBlock = link(this, text(text)) | ||
|
||
internal infix operator fun SqlBlock.plus(rhs: SqlBlock): SqlBlock = link(this, rhs) | ||
|
||
internal infix operator fun SqlBlock.plus(text: String): SqlBlock = link(this, text(text)) | ||
|
||
// Shorthand | ||
|
||
internal val NIL = SqlBlock.Nil | ||
|
||
internal val NL = SqlBlock.NL | ||
|
||
internal fun text(text: String) = SqlBlock.Text(text) | ||
|
||
internal fun link(lhs: SqlBlock, rhs: SqlBlock) = SqlBlock.Link(lhs, rhs) | ||
|
||
internal fun nest(block: () -> SqlBlock) = SqlBlock.Nest(block()) | ||
|
||
internal fun list(start: String?, end: String?, delimiter: String? = ",", items: () -> List<SqlBlock>): SqlBlock { | ||
var h: SqlBlock = NIL | ||
h = if (start != null) h + start else h | ||
h += nest { | ||
val kids = items() | ||
var list: SqlBlock = NIL | ||
kids.foldIndexed(list) { i, a, item -> | ||
list += item | ||
list = if (delimiter != null && (i + 1) < kids.size) a + delimiter else a | ||
list | ||
} | ||
} | ||
h = if (end != null) h + end else h | ||
return h | ||
} | ||
fun SqlBlock.sql(layout: SqlLayout = SqlLayout.STANDARD) = layout.print(this) |
143 changes: 57 additions & 86 deletions
143
partiql-ast/src/main/kotlin/org/partiql/ast/sql/SqlBlock.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 |
---|---|---|
@@ -1,93 +1,64 @@ | ||
package org.partiql.ast.sql | ||
|
||
/** | ||
* Write this [SqlBlock] tree as SQL text with the given [SqlLayout]. | ||
/* | ||
* Copyright Amazon.com, Inc. or its affiliates. All rights reserved. | ||
* | ||
* @param layout SQL formatting ruleset | ||
* @return SQL text | ||
* 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. | ||
*/ | ||
@Deprecated("To be removed in the next major version") | ||
public fun SqlBlock.sql(layout: SqlLayout = SqlLayout.DEFAULT): String = layout.format(this) | ||
|
||
package org.partiql.ast.sql | ||
|
||
/** | ||
* Representation of some textual corpus; akin to Wadler's "A prettier printer" Document type. | ||
* Representation of some textual elements as a token (singly-linked) list. | ||
*/ | ||
@Deprecated("This will be changed in the next major version") | ||
sealed interface SqlBlock { | ||
|
||
public override fun toString(): String | ||
|
||
public fun <R, C> accept(visitor: BlockVisitor<R, C>, ctx: C): R | ||
|
||
public object Nil : SqlBlock { | ||
|
||
override fun toString() = "" | ||
|
||
override fun <R, C> accept(visitor: BlockVisitor<R, C>, ctx: C): R = visitor.visitNil(this, ctx) | ||
} | ||
|
||
public object NL : SqlBlock { | ||
|
||
override fun toString() = "\n" | ||
|
||
override fun <R, C> accept(visitor: BlockVisitor<R, C>, ctx: C): R = visitor.visitNewline(this, ctx) | ||
} | ||
|
||
public class Text(val text: String) : SqlBlock { | ||
|
||
override fun toString() = text | ||
|
||
override fun <R, C> accept(visitor: BlockVisitor<R, C>, ctx: C): R = visitor.visitText(this, ctx) | ||
} | ||
|
||
public class Nest(val child: SqlBlock) : SqlBlock { | ||
|
||
override fun toString() = child.toString() | ||
|
||
override fun <R, C> accept(visitor: BlockVisitor<R, C>, ctx: C): R = visitor.visitNest(this, ctx) | ||
} | ||
|
||
// Use link block rather than linked-list block.next as it makes pre-order traversal trivial | ||
public class Link(val lhs: SqlBlock, val rhs: SqlBlock) : SqlBlock { | ||
|
||
override fun toString() = lhs.toString() + rhs.toString() | ||
|
||
override fun <R, C> accept(visitor: BlockVisitor<R, C>, ctx: C): R = visitor.visitLink(this, ctx) | ||
sealed class SqlBlock { | ||
|
||
/** | ||
* Next token (if any) in the list. | ||
*/ | ||
@JvmField | ||
var next: SqlBlock? = null | ||
|
||
/** | ||
* An empty [SqlBlock] to be used as a root. | ||
*/ | ||
class Nil : SqlBlock() | ||
|
||
/** | ||
* A newline token. | ||
*/ | ||
object Line : SqlBlock() | ||
|
||
/** | ||
* A raw text token. Cannot be broken. | ||
*/ | ||
class Text(@JvmField var text: String) : SqlBlock() | ||
|
||
/** | ||
* A nest token representing a (possible indented) token sublist. | ||
* | ||
* @property prefix A prefix character such as '{', '(', or '['. | ||
* @property postfix A postfix character such as '}', ')', or ']'. | ||
* @property child | ||
*/ | ||
class Nest( | ||
@JvmField var prefix: String?, | ||
@JvmField var postfix: String?, | ||
@JvmField var child: SqlBlock, | ||
) : SqlBlock() | ||
|
||
companion object { | ||
|
||
/** | ||
* Helper function to create root node (empty). | ||
*/ | ||
@JvmStatic | ||
internal fun nil(): SqlBlock = Nil() | ||
} | ||
} | ||
|
||
@Deprecated("This will be changed in the next major version") | ||
public interface BlockVisitor<R, C> { | ||
|
||
public fun visit(block: SqlBlock, ctx: C): R | ||
|
||
public fun visitNil(block: SqlBlock.Nil, ctx: C): R | ||
|
||
public fun visitNewline(block: SqlBlock.NL, ctx: C): R | ||
|
||
public fun visitText(block: SqlBlock.Text, ctx: C): R | ||
|
||
public fun visitNest(block: SqlBlock.Nest, ctx: C): R | ||
|
||
public fun visitLink(block: SqlBlock.Link, ctx: C): R | ||
} | ||
|
||
@Deprecated("This will be changed in the next major version") | ||
public abstract class BlockBaseVisitor<R, C> : BlockVisitor<R, C> { | ||
|
||
public abstract fun defaultReturn(block: SqlBlock, ctx: C): R | ||
|
||
public open fun defaultVisit(block: SqlBlock, ctx: C) = defaultReturn(block, ctx) | ||
|
||
public override fun visit(block: SqlBlock, ctx: C): R = block.accept(this, ctx) | ||
|
||
public override fun visitNil(block: SqlBlock.Nil, ctx: C): R = defaultVisit(block, ctx) | ||
|
||
public override fun visitNewline(block: SqlBlock.NL, ctx: C): R = defaultVisit(block, ctx) | ||
|
||
public override fun visitText(block: SqlBlock.Text, ctx: C): R = defaultVisit(block, ctx) | ||
|
||
public override fun visitNest(block: SqlBlock.Nest, ctx: C): R = defaultVisit(block, ctx) | ||
|
||
public override fun visitLink(block: SqlBlock.Link, ctx: C): R = defaultVisit(block, ctx) | ||
} |
Oops, something went wrong.
306ec7c
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
252.62789684216077
us/op268.7004545223102
us/op0.94
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithoutInterruptible
267.02331753364984
us/op268.57905229873927
us/op0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithInterruptible
256.8713892274602
us/op255.29025925395158
us/op1.01
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithoutInterruptible
243.51818994939535
us/op249.7124714326404
us/op0.98
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithInterruptible
178.91102633268514
us/op171.04322103333922
us/op1.05
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithoutInterruptible
167.70187041551972
us/op166.25435830856478
us/op1.01
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithInterruptible
12661526.309850002
us/op13087754.51725
us/op0.97
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithoutInterruptible
12558570.47135
us/op12994078.458900005
us/op0.97
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithInterruptible
4940034.379
us/op5230926.283799999
us/op0.94
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithoutInterruptible
5332613.941400001
us/op5088910.151799999
us/op1.05
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithInterruptible
38.39011425243458
us/op40.21664468109738
us/op0.95
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithoutInterruptible
39.79168755159684
us/op38.85948387756703
us/op1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithInterruptible
12924045.059050001
us/op12981211.85985
us/op1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithoutInterruptible
12777766.5645
us/op12844264.673549999
us/op0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithInterruptible
4911377.3626500005
us/op4975641.4844
us/op0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithoutInterruptible
5255777.5974
us/op4900264.828249999
us/op1.07
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithInterruptible
99210.0180759091
us/op92004.43600568181
us/op1.08
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithoutInterruptible
99846.32806636364
us/op94812.09170909089
us/op1.05
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler15
78.99720249426906
us/op91.04741920314669
us/op0.87
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler30
156.16767860920416
us/op156.75319059368326
us/op1.00
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator15
333166.3580583333
us/op376558.66275
us/op0.88
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30
726293.9147500002
us/op647024.3154250002
us/op1.12
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30WithData10
7396075.895699998
us/op7288455.869900001
us/op1.01
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser15
133.15513288432962
us/op135.36281419730432
us/op0.98
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser30
254.12773739124526
us/op258.22595983378653
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameCaseWhenThen
33.09747463689941
us/op33.52485846231308
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery
41.22500303905686
us/op41.645714179797366
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery01
241.094027670236
us/op243.35766256324223
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery02
419.696985390541
us/op407.2751247608718
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExceptUnionIntersectSixty
157.85767046312174
us/op156.27927551508884
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExec20Expressions
47.12402020548904
us/op48.66542841856326
us/op0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameFromLet
33.84918572236414
us/op33.95756470561496
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPattern
32.41842206559603
us/op31.464237050410976
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPreFilters
57.62171602992417
us/op56.3697044272691
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGroupLimit
40.30015382092825
us/op38.972116317215644
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameLongFromSourceOrderBy
48.63851221442999
us/op49.27380830217116
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameManyJoins
50.05069056828255
us/op48.83246503267047
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedAggregates
83.1697853173434
us/op85.28419947008025
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedParen
13.294065362930388
us/op13.768852666710051
us/op0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNamePivot
50.712388519116516
us/op51.2386345687644
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery15OrsAndLikes
164.11616425349195
us/op159.61841104539602
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery30Plus
87.13464312890348
us/op87.75711771124156
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFunc
38.91094223452901
us/op38.93082934820102
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFuncInProjection
43.14543060092558
us/op43.409812405606594
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryList
60.85103338371829
us/op59.909047455636994
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryNestedSelect
601.751449846541
us/op577.277510277666
us/op1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuerySimple
12.131468136234952
us/op12.154832240621953
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralJoins
17.14288641662182
us/op16.822477054728388
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralProjections
57.48870041272365
us/op57.0535624467087
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralSelect
160.30773754383398
us/op158.84808899783582
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSimpleInsert
23.28829289572331
us/op23.02550341097794
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeJoins
16.897039188718274
us/op16.91774037884283
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeProjections
23.274950731306955
us/op23.241629166124046
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeSelect
41.17113337681907
us/op39.901324699804434
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameTimeZone
19.77825073269425
us/op19.324074263742585
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery
194.0545634040224
us/op194.7030458634635
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery01
763.3316249925516
us/op750.7652789490884
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameCaseWhenThen
18.251493723798156
us/op18.525064205981828
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery
201.9388606368389
us/op178.53580313772986
us/op1.13
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery01
85.69006816710197
us/op85.9236290858773
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExceptUnionIntersectSixty
163.89968845513542
us/op164.56237436708102
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExec20Expressions
46.55317223544604
us/op48.661718892768064
us/op0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameFromLet
26.898129494791014
us/op27.191573466286922
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPattern
30.32828860844642
us/op28.23000725908681
us/op1.07
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPreFilters
55.124064381053515
us/op54.15431070946738
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGroupLimit
24.907231570356693
us/op25.427312203095546
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameLongFromSourceOrderBy
100.84166835618016
us/op96.24737493509225
us/op1.05
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameManyJoins
32.64760850429192
us/op32.940131158584634
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedAggregates
73.2314085231114
us/op70.1287778822701
us/op1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedParen
63.3384978843168
us/op62.970373778362365
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNamePivot
50.59109720014883
us/op49.063847452427424
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery15OrsAndLikes
128.470337306972
us/op129.45663123887465
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery30Plus
44.16059160009751
us/op45.98546467192083
us/op0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFunc
97.85836413973489
us/op99.76016990624696
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFuncInProjection
64.69274510745427
us/op63.42305510386957
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryList
55.47726427195979
us/op55.6710245471579
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryNestedSelect
105.79569328098208
us/op102.5970733424895
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuerySimple
8.566753237559627
us/op8.601316340731644
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralJoins
55.03044190304772
us/op54.18387144122596
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralProjections
41.16054184374121
us/op41.559139773360855
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralSelect
74.22568365693297
us/op74.30690073979697
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSimpleInsert
14.839574869176413
us/op15.053138867965558
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeJoins
14.928019634807185
us/op14.628639781254673
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeProjections
13.258322994384404
us/op12.699659109461631
us/op1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeSelect
24.646346971598213
us/op24.355603736662914
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameTimeZone
5.926818881218656
us/op5.940001298004496
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery
303.57180227716395
us/op304.97745494212916
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery01
890.0680421389845
us/op821.9824308552754
us/op1.08
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLCompiler
7.182996069895975
us/op6.942477779295203
us/op1.03
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLEvaluator
1.9667405306028705
us/op1.990941171080753
us/op0.99
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLParser
7.9341478488669654
us/op7.614425559257026
us/op1.04
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery1
7.226428324169211
us/op7.1712402103248865
us/op1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery2
14.104751834184194
us/op14.08529376394634
us/op1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery3
15.249820982857738
us/op15.243279228837869
us/op1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery4
22.78929356594113
us/op22.60264848243649
us/op1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery5
24.112707338732953
us/op23.85658458601884
us/op1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery1
144556.9625580357
us/op141976.62776160715
us/op1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery10
15.635307112675813
us/op15.9179221821006
us/op0.98
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery11
2.4904306476039886
us/op2.456231568927029
us/op1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery2
244764.641035
us/op238887.84755000006
us/op1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery3
238288.79605
us/op240820.57964249997
us/op0.99
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery4
311312.6067625001
us/op295638.5846375
us/op1.05
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery5
305055.6840250001
us/op298094.1576875
us/op1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery6
369967.47781666665
us/op354543.42838333326
us/op1.04
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery7
35273.38123182327
us/op28245.282287688762
us/op1.25
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery8
2841.524437626936
us/op2815.491686423073
us/op1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery9
263.2979192572111
us/op268.20930629639435
us/op0.98
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery1
6.870013568291713
us/op7.105818613989527
us/op0.97
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery2
13.310415134104398
us/op13.01502857569621
us/op1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery3
15.477559622410563
us/op14.761850313141172
us/op1.05
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery4
22.380340638330587
us/op20.980044867140094
us/op1.07
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery5
22.10247599541257
us/op22.470965688387718
us/op0.98
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery1
132604.54476250004
us/op124912.68392986113
us/op1.06
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery10
9.738262307219943
us/op9.766594621078301
us/op1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery11
1.369522515995057
us/op1.4097026545948377
us/op0.97
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery2
188610.8692916667
us/op193036.85697500003
us/op0.98
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery3
190325.75485000006
us/op195112.89094166664
us/op0.98
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery4
246084.0302
us/op245990.46797250008
us/op1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery5
242595.04482999997
us/op225164.21398
us/op1.08
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery6
296834.7728375
us/op287771.8831624999
us/op1.03
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery7
27230.555865990325
us/op22223.82992023569
us/op1.23
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery8
2225.9076122663437
us/op2158.0959340172303
us/op1.03
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery9
202.67212657058343
us/op199.87656208722365
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameCaseWhenThen
32.80954501575988
us/op32.54496548748209
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery
42.10950707296481
us/op41.12089848830391
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery01
236.5658925594283
us/op238.75096248440354
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery02
416.032499080581
us/op410.0504532133368
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExceptUnionIntersectSixty
159.22290111523935
us/op156.5576943473073
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExec20Expressions
44.521819755584715
us/op44.41007917391256
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameFromLet
32.60767171495481
us/op32.47270046222015
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPattern
31.44024588777453
us/op31.5655027877471
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPreFilters
55.86131034290884
us/op56.89528375398909
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGroupLimit
40.70094570560118
us/op39.544910936030725
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameLongFromSourceOrderBy
48.27587162486037
us/op48.209046051742106
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameManyJoins
49.404675307713205
us/op48.31320859783742
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedAggregates
84.15566176872689
us/op82.48135547087104
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedParen
12.967387223027895
us/op13.034602865616886
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNamePivot
52.45054116885465
us/op51.394047234766525
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery15OrsAndLikes
159.5758970854614
us/op156.9670277360841
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery30Plus
88.13646053731972
us/op87.3246324561857
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFunc
38.98978884511824
us/op38.51947885307319
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFuncInProjection
42.526451972407955
us/op42.71053909081675
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryList
59.09423787562936
us/op57.832240834192646
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryNestedSelect
585.8912238372225
us/op570.3178439340829
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuerySimple
11.942733984304915
us/op11.961609220396973
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralJoins
16.240889016706262
us/op16.45446765528311
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralProjections
55.118409760342345
us/op55.59709160561389
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralSelect
159.30465397831128
us/op155.0474974513819
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSimpleInsert
23.002384826705093
us/op21.792576207864407
us/op1.06
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeJoins
16.10670998815589
us/op16.06729937068568
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeProjections
22.34361808807065
us/op22.071217812569174
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeSelect
39.68996793960194
us/op39.8779614822423
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameTimeZone
19.192692570052024
us/op19.1032431492916
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery
198.29188647222776
us/op196.51495280111845
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery01
748.88854663549
us/op750.8756947448736
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameCaseWhenThen
24.081045605757453
us/op23.80559689219009
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery
249.37531655271468
us/op247.70424284677455
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery01
118.22728155813891
us/op120.997508891225
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExceptUnionIntersectSixty
267.7383354834443
us/op261.8868002948621
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExec20Expressions
62.68986446962849
us/op61.97243521707928
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameFromLet
41.07679731234979
us/op42.32066014286702
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPattern
45.358804570453756
us/op47.397733454293885
us/op0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPreFilters
83.02340559586527
us/op84.33177954559886
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGroupLimit
29.569291281228296
us/op28.763435103187156
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameLongFromSourceOrderBy
121.95965403748684
us/op120.99686372920046
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameManyJoins
43.528833632601625
us/op42.289413818840664
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedAggregates
98.22198359032987
us/op97.9911156613449
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedParen
66.58992158588723
us/op65.24106458828062
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNamePivot
65.62084324548628
us/op61.69439725427854
us/op1.06
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery15OrsAndLikes
188.30798948163965
us/op191.97021476791483
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery30Plus
56.64496259678882
us/op59.27741757827133
us/op0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFunc
116.27574102362651
us/op112.7605503125769
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFuncInProjection
79.3170345989167
us/op77.8156111948662
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryList
68.85083945638146
us/op70.72318147613639
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryNestedSelect
135.46895258375912
us/op137.4118851147103
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuerySimple
12.135581378358916
us/op12.21761674187905
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralJoins
79.86658495751077
us/op77.84721088950997
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralProjections
61.47865489409988
us/op61.647672473735426
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralSelect
113.72469207721629
us/op114.3046815787427
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSimpleInsert
21.8687079695662
us/op21.645963934477226
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeJoins
19.98857330073774
us/op20.34824396389082
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeProjections
18.733845030188878
us/op18.587232608295118
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeSelect
34.80555658773695
us/op35.68308429175262
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameTimeZone
7.8076960731707015
us/op7.413027399759092
us/op1.05
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery
456.8627448736776
us/op462.91787941674556
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery01
1134.29642119874
us/op1198.7878516582136
us/op0.95
This comment was automatically generated by workflow using github-action-benchmark.