Skip to content

Commit

Permalink
Replaces deprecated SqlBlock with optimized version (#1564)
Browse files Browse the repository at this point in the history
  • Loading branch information
RCHowell authored Aug 27, 2024
1 parent 1246427 commit 306ec7c
Show file tree
Hide file tree
Showing 10 changed files with 647 additions and 1,712 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ unconstrained which is not SQL-conformant and is causing issues in integrating w
INTEGER an alias for INT4 which is the internal type name. In a later release, we will make INTEGER the default 32-bit
integer with INT/INT4/INTEGER4 being aliases per other systems. This change only applies to
org.partiql.parser.PartiQLParser, not the org.partiql.lang.syntax.PartiQLParser.
- The deprecated SqlLayout and SqlDialect (which had stack overflow issues) has been replaced by the optimized version.
The API is slightly different (append vs prepend) and generic method names have been replaced with more descriptive
names (transform and print).

### Deprecated
- We have deprecated `org.partiql.type.NullType` and `org.partiql.type.MissingType`. Please see the corresponding
Expand Down
78 changes: 11 additions & 67 deletions partiql-ast/src/main/kotlin/org/partiql/ast/sql/Sql.kt
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 partiql-ast/src/main/kotlin/org/partiql/ast/sql/SqlBlock.kt
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)
}
Loading

1 comment on commit 306ec7c

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JMH Benchmark

Benchmark suite Current: 306ec7c Previous: 1246427 Ratio
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithInterruptible 252.62789684216077 us/op 268.7004545223102 us/op 0.94
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithoutInterruptible 267.02331753364984 us/op 268.57905229873927 us/op 0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithInterruptible 256.8713892274602 us/op 255.29025925395158 us/op 1.01
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithoutInterruptible 243.51818994939535 us/op 249.7124714326404 us/op 0.98
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithInterruptible 178.91102633268514 us/op 171.04322103333922 us/op 1.05
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithoutInterruptible 167.70187041551972 us/op 166.25435830856478 us/op 1.01
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithInterruptible 12661526.309850002 us/op 13087754.51725 us/op 0.97
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithoutInterruptible 12558570.47135 us/op 12994078.458900005 us/op 0.97
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithInterruptible 4940034.379 us/op 5230926.283799999 us/op 0.94
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithoutInterruptible 5332613.941400001 us/op 5088910.151799999 us/op 1.05
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithInterruptible 38.39011425243458 us/op 40.21664468109738 us/op 0.95
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithoutInterruptible 39.79168755159684 us/op 38.85948387756703 us/op 1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithInterruptible 12924045.059050001 us/op 12981211.85985 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithoutInterruptible 12777766.5645 us/op 12844264.673549999 us/op 0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithInterruptible 4911377.3626500005 us/op 4975641.4844 us/op 0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithoutInterruptible 5255777.5974 us/op 4900264.828249999 us/op 1.07
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithInterruptible 99210.0180759091 us/op 92004.43600568181 us/op 1.08
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithoutInterruptible 99846.32806636364 us/op 94812.09170909089 us/op 1.05
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler15 78.99720249426906 us/op 91.04741920314669 us/op 0.87
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler30 156.16767860920416 us/op 156.75319059368326 us/op 1.00
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator15 333166.3580583333 us/op 376558.66275 us/op 0.88
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30 726293.9147500002 us/op 647024.3154250002 us/op 1.12
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30WithData10 7396075.895699998 us/op 7288455.869900001 us/op 1.01
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser15 133.15513288432962 us/op 135.36281419730432 us/op 0.98
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser30 254.12773739124526 us/op 258.22595983378653 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameCaseWhenThen 33.09747463689941 us/op 33.52485846231308 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery 41.22500303905686 us/op 41.645714179797366 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery01 241.094027670236 us/op 243.35766256324223 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery02 419.696985390541 us/op 407.2751247608718 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExceptUnionIntersectSixty 157.85767046312174 us/op 156.27927551508884 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExec20Expressions 47.12402020548904 us/op 48.66542841856326 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameFromLet 33.84918572236414 us/op 33.95756470561496 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPattern 32.41842206559603 us/op 31.464237050410976 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPreFilters 57.62171602992417 us/op 56.3697044272691 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGroupLimit 40.30015382092825 us/op 38.972116317215644 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameLongFromSourceOrderBy 48.63851221442999 us/op 49.27380830217116 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameManyJoins 50.05069056828255 us/op 48.83246503267047 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedAggregates 83.1697853173434 us/op 85.28419947008025 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedParen 13.294065362930388 us/op 13.768852666710051 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNamePivot 50.712388519116516 us/op 51.2386345687644 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery15OrsAndLikes 164.11616425349195 us/op 159.61841104539602 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery30Plus 87.13464312890348 us/op 87.75711771124156 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFunc 38.91094223452901 us/op 38.93082934820102 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFuncInProjection 43.14543060092558 us/op 43.409812405606594 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryList 60.85103338371829 us/op 59.909047455636994 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryNestedSelect 601.751449846541 us/op 577.277510277666 us/op 1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuerySimple 12.131468136234952 us/op 12.154832240621953 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralJoins 17.14288641662182 us/op 16.822477054728388 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralProjections 57.48870041272365 us/op 57.0535624467087 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralSelect 160.30773754383398 us/op 158.84808899783582 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSimpleInsert 23.28829289572331 us/op 23.02550341097794 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeJoins 16.897039188718274 us/op 16.91774037884283 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeProjections 23.274950731306955 us/op 23.241629166124046 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeSelect 41.17113337681907 us/op 39.901324699804434 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameTimeZone 19.77825073269425 us/op 19.324074263742585 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery 194.0545634040224 us/op 194.7030458634635 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery01 763.3316249925516 us/op 750.7652789490884 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameCaseWhenThen 18.251493723798156 us/op 18.525064205981828 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery 201.9388606368389 us/op 178.53580313772986 us/op 1.13
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery01 85.69006816710197 us/op 85.9236290858773 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExceptUnionIntersectSixty 163.89968845513542 us/op 164.56237436708102 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExec20Expressions 46.55317223544604 us/op 48.661718892768064 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameFromLet 26.898129494791014 us/op 27.191573466286922 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPattern 30.32828860844642 us/op 28.23000725908681 us/op 1.07
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPreFilters 55.124064381053515 us/op 54.15431070946738 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGroupLimit 24.907231570356693 us/op 25.427312203095546 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameLongFromSourceOrderBy 100.84166835618016 us/op 96.24737493509225 us/op 1.05
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameManyJoins 32.64760850429192 us/op 32.940131158584634 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedAggregates 73.2314085231114 us/op 70.1287778822701 us/op 1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedParen 63.3384978843168 us/op 62.970373778362365 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNamePivot 50.59109720014883 us/op 49.063847452427424 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery15OrsAndLikes 128.470337306972 us/op 129.45663123887465 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery30Plus 44.16059160009751 us/op 45.98546467192083 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFunc 97.85836413973489 us/op 99.76016990624696 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFuncInProjection 64.69274510745427 us/op 63.42305510386957 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryList 55.47726427195979 us/op 55.6710245471579 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryNestedSelect 105.79569328098208 us/op 102.5970733424895 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuerySimple 8.566753237559627 us/op 8.601316340731644 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralJoins 55.03044190304772 us/op 54.18387144122596 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralProjections 41.16054184374121 us/op 41.559139773360855 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralSelect 74.22568365693297 us/op 74.30690073979697 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSimpleInsert 14.839574869176413 us/op 15.053138867965558 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeJoins 14.928019634807185 us/op 14.628639781254673 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeProjections 13.258322994384404 us/op 12.699659109461631 us/op 1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeSelect 24.646346971598213 us/op 24.355603736662914 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameTimeZone 5.926818881218656 us/op 5.940001298004496 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery 303.57180227716395 us/op 304.97745494212916 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery01 890.0680421389845 us/op 821.9824308552754 us/op 1.08
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLCompiler 7.182996069895975 us/op 6.942477779295203 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLEvaluator 1.9667405306028705 us/op 1.990941171080753 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLParser 7.9341478488669654 us/op 7.614425559257026 us/op 1.04
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery1 7.226428324169211 us/op 7.1712402103248865 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery2 14.104751834184194 us/op 14.08529376394634 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery3 15.249820982857738 us/op 15.243279228837869 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery4 22.78929356594113 us/op 22.60264848243649 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery5 24.112707338732953 us/op 23.85658458601884 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery1 144556.9625580357 us/op 141976.62776160715 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery10 15.635307112675813 us/op 15.9179221821006 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery11 2.4904306476039886 us/op 2.456231568927029 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery2 244764.641035 us/op 238887.84755000006 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery3 238288.79605 us/op 240820.57964249997 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery4 311312.6067625001 us/op 295638.5846375 us/op 1.05
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery5 305055.6840250001 us/op 298094.1576875 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery6 369967.47781666665 us/op 354543.42838333326 us/op 1.04
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery7 35273.38123182327 us/op 28245.282287688762 us/op 1.25
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery8 2841.524437626936 us/op 2815.491686423073 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery9 263.2979192572111 us/op 268.20930629639435 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery1 6.870013568291713 us/op 7.105818613989527 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery2 13.310415134104398 us/op 13.01502857569621 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery3 15.477559622410563 us/op 14.761850313141172 us/op 1.05
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery4 22.380340638330587 us/op 20.980044867140094 us/op 1.07
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery5 22.10247599541257 us/op 22.470965688387718 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery1 132604.54476250004 us/op 124912.68392986113 us/op 1.06
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery10 9.738262307219943 us/op 9.766594621078301 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery11 1.369522515995057 us/op 1.4097026545948377 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery2 188610.8692916667 us/op 193036.85697500003 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery3 190325.75485000006 us/op 195112.89094166664 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery4 246084.0302 us/op 245990.46797250008 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery5 242595.04482999997 us/op 225164.21398 us/op 1.08
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery6 296834.7728375 us/op 287771.8831624999 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery7 27230.555865990325 us/op 22223.82992023569 us/op 1.23
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery8 2225.9076122663437 us/op 2158.0959340172303 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery9 202.67212657058343 us/op 199.87656208722365 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameCaseWhenThen 32.80954501575988 us/op 32.54496548748209 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery 42.10950707296481 us/op 41.12089848830391 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery01 236.5658925594283 us/op 238.75096248440354 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery02 416.032499080581 us/op 410.0504532133368 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExceptUnionIntersectSixty 159.22290111523935 us/op 156.5576943473073 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExec20Expressions 44.521819755584715 us/op 44.41007917391256 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameFromLet 32.60767171495481 us/op 32.47270046222015 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPattern 31.44024588777453 us/op 31.5655027877471 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPreFilters 55.86131034290884 us/op 56.89528375398909 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGroupLimit 40.70094570560118 us/op 39.544910936030725 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameLongFromSourceOrderBy 48.27587162486037 us/op 48.209046051742106 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameManyJoins 49.404675307713205 us/op 48.31320859783742 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedAggregates 84.15566176872689 us/op 82.48135547087104 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedParen 12.967387223027895 us/op 13.034602865616886 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNamePivot 52.45054116885465 us/op 51.394047234766525 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery15OrsAndLikes 159.5758970854614 us/op 156.9670277360841 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery30Plus 88.13646053731972 us/op 87.3246324561857 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFunc 38.98978884511824 us/op 38.51947885307319 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFuncInProjection 42.526451972407955 us/op 42.71053909081675 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryList 59.09423787562936 us/op 57.832240834192646 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryNestedSelect 585.8912238372225 us/op 570.3178439340829 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuerySimple 11.942733984304915 us/op 11.961609220396973 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralJoins 16.240889016706262 us/op 16.45446765528311 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralProjections 55.118409760342345 us/op 55.59709160561389 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralSelect 159.30465397831128 us/op 155.0474974513819 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSimpleInsert 23.002384826705093 us/op 21.792576207864407 us/op 1.06
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeJoins 16.10670998815589 us/op 16.06729937068568 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeProjections 22.34361808807065 us/op 22.071217812569174 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeSelect 39.68996793960194 us/op 39.8779614822423 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameTimeZone 19.192692570052024 us/op 19.1032431492916 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery 198.29188647222776 us/op 196.51495280111845 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery01 748.88854663549 us/op 750.8756947448736 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameCaseWhenThen 24.081045605757453 us/op 23.80559689219009 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery 249.37531655271468 us/op 247.70424284677455 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery01 118.22728155813891 us/op 120.997508891225 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExceptUnionIntersectSixty 267.7383354834443 us/op 261.8868002948621 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExec20Expressions 62.68986446962849 us/op 61.97243521707928 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameFromLet 41.07679731234979 us/op 42.32066014286702 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPattern 45.358804570453756 us/op 47.397733454293885 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPreFilters 83.02340559586527 us/op 84.33177954559886 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGroupLimit 29.569291281228296 us/op 28.763435103187156 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameLongFromSourceOrderBy 121.95965403748684 us/op 120.99686372920046 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameManyJoins 43.528833632601625 us/op 42.289413818840664 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedAggregates 98.22198359032987 us/op 97.9911156613449 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedParen 66.58992158588723 us/op 65.24106458828062 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNamePivot 65.62084324548628 us/op 61.69439725427854 us/op 1.06
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery15OrsAndLikes 188.30798948163965 us/op 191.97021476791483 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery30Plus 56.64496259678882 us/op 59.27741757827133 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFunc 116.27574102362651 us/op 112.7605503125769 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFuncInProjection 79.3170345989167 us/op 77.8156111948662 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryList 68.85083945638146 us/op 70.72318147613639 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryNestedSelect 135.46895258375912 us/op 137.4118851147103 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuerySimple 12.135581378358916 us/op 12.21761674187905 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralJoins 79.86658495751077 us/op 77.84721088950997 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralProjections 61.47865489409988 us/op 61.647672473735426 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralSelect 113.72469207721629 us/op 114.3046815787427 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSimpleInsert 21.8687079695662 us/op 21.645963934477226 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeJoins 19.98857330073774 us/op 20.34824396389082 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeProjections 18.733845030188878 us/op 18.587232608295118 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeSelect 34.80555658773695 us/op 35.68308429175262 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameTimeZone 7.8076960731707015 us/op 7.413027399759092 us/op 1.05
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery 456.8627448736776 us/op 462.91787941674556 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery01 1134.29642119874 us/op 1198.7878516582136 us/op 0.95

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.