Skip to content

Commit

Permalink
Add additional APIs for async physical plan evaluation (#1382)
Browse files Browse the repository at this point in the history
  • Loading branch information
alancai98 authored Mar 12, 2024
1 parent b938fda commit b063e52
Show file tree
Hide file tree
Showing 93 changed files with 6,752 additions and 161 deletions.
19 changes: 18 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,28 @@ Thank you to all who have contributed!

### Added
- Added constrained decimal as valid parameter type to functions that take in numeric parameters.
- Added async version of physical plan evaluator `PartiQLCompilerAsync`.
- The following related async APIs have been added:
- `org.partiql.lang.compiler` -- `PartiQLCompilerAsync`, `PartiQLCompilerAsyncBuilder`, `PartiQLCompilerAsyncDefault`, `PartiQLCompilerPipelineAsync`
- `org.partiql.lang.eval` -- `PartiQLStatementAsync`
- `org.partiql.lang.eval.physical` -- `VariableBindingAsync`
- `org.partiql.lang.eval.physical.operators` -- `AggregateOperatorFactoryAsync`, `CompiledGroupKeyAsync`, `CompiledAggregateFunctionAsync`, `FilterRelationalOperatorFactoryAsync`, `JoinRelationalOperatorFactoryAsync`, `LetRelationalOperatorFactoryAsync`, `LimitRelationalOperatorFactoryAsync`, `OffsetRelationalOperatorFactoryAsync`, `ProjectRelationalOperatorFactoryAsync`, `RelationExpressionAsync`, `ScanRelationalOperatorFactoryAsync`, `SortOperatorFactoryAsync`, `CompiledSortKeyAsync`, `UnpivotOperatorFactoryAsync`, `ValueExpressionAsync`, `WindowRelationalOperatorFactoryAsync`, `CompiledWindowFunctionAsync`
- `org.partiql.lang.eval.physical.window` -- `NavigationWindowFunctionAsync`, `WindowFunctionAsync`
- Overall, we see about a 10-20% performance decline in running a single query on the synchronous vs async evaluator
- JMH benchmarks added to partiql-lang: `PartiQLCompilerPipelineBenchmark` and `PartiQLCompilerPipelineAsyncBenchmark`

### Changed
- Function resolution logic: Now the function resolver would match all possible candidate(based on if the argument can be coerced to the Signature parameter type). If there are multiple match it will first attempt to pick the one requires the least cast, then pick the function with the highest precedence.
- partiql-cli -- experimental version of CLI now uses the async physical plan evaluator

### Deprecated
- As part of the additions to make an async physical plan evaluator, the synchronous physical plan evaluator `PartiQLCompiler` has been deprecated.
- The following related APIs have been deprecated
- `org.partiql.lang.compiler` -- `PartiQLCompiler`, `PartiQLCompilerBuilder`, `PartiQLCompilerDefault`, `PartiQLCompilerPipeline`
- `org.partiql.lang.eval` -- `PartiQLStatement`
- `org.partiql.lang.eval.physical` -- `VariableBinding`
- `org.partiql.lang.eval.physical.operators` -- `AggregateOperatorFactory`, `CompiledGroupKey`, `CompiledAggregateFunction`, `FilterRelationalOperatorFactory`, `JoinRelationalOperatorFactory`, `LetRelationalOperatorFactory`, `LimitRelationalOperatorFactory`, `OffsetRelationalOperatorFactory`, `ProjectRelationalOperatorFactory`, `RelationExpression`, `ScanRelationalOperatorFactory`, `SortOperatorFactory`, `CompiledSortKey`, `UnpivotOperatorFactory`, `ValueExpression`, `WindowRelationalOperatorFactory`, `CompiledWindowFunction`
- `org.partiql.lang.eval.physical.window` -- `NavigationWindowFunction`, `WindowFunction`

### Fixed
- partiql-ast: `SqlDialect` will wrap unary ops (`NOT`, `+`, `-`) in parens
Expand All @@ -44,7 +61,7 @@ Thank you to all who have contributed!

### Contributors
Thank you to all who have contributed!
- @<your-username>
- @alancai98

## [0.14.3] - 2024-02-14

Expand Down
18 changes: 16 additions & 2 deletions buildSrc/src/main/kotlin/partiql.versions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,19 @@ object Versions {
const val jansi = "2.4.0"
const val jgenhtml = "1.6"
const val jline = "3.21.0"
const val jmh = "0.5.3"
const val jmhGradlePlugin = "0.5.3"
const val jmhCore = "1.37"
const val jmhGeneratorAnnprocess = "1.37"
const val jmhGeneratorBytecode = "1.37"
const val joda = "2.12.1"
const val kotlinPoet = "1.11.0"
const val kotlinxCollections = "0.3.5"
const val picoCli = "4.7.0"
const val kasechange = "1.3.0"
const val ktlint = "11.6.0"
const val pig = "0.6.2"
const val kotlinxCoroutines = "1.6.0"
const val kotlinxCoroutinesJdk8 = "1.6.0"

// Testing
const val assertj = "3.11.0"
Expand All @@ -54,6 +59,7 @@ object Versions {
const val junit4Params = "1.1.1"
const val mockito = "4.5.0"
const val mockk = "1.11.0"
const val kotlinxCoroutinesTest = "1.6.0"
}

object Deps {
Expand Down Expand Up @@ -84,6 +90,8 @@ object Deps {
const val picoCli = "info.picocli:picocli:${Versions.picoCli}"
const val pig = "org.partiql:partiql-ir-generator:${Versions.pig}"
const val pigRuntime = "org.partiql:partiql-ir-generator-runtime:${Versions.pig}"
const val kotlinxCoroutines = "org.jetbrains.kotlinx:kotlinx-coroutines-core:${Versions.kotlinxCoroutines}"
const val kotlinxCoroutinesJdk8 = "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:${Versions.kotlinxCoroutinesJdk8}"

// Testing
const val assertj = "org.assertj:assertj-core:${Versions.assertj}"
Expand All @@ -97,6 +105,12 @@ object Deps {
const val kotlinTestJunit = "org.jetbrains.kotlin:kotlin-test-junit5:${Versions.kotlin}"
const val mockito = "org.mockito:mockito-junit-jupiter:${Versions.mockito}"
const val mockk = "io.mockk:mockk:${Versions.mockk}"
const val kotlinxCoroutinesTest = "org.jetbrains.kotlinx:kotlinx-coroutines-test:${Versions.kotlinxCoroutinesTest}"

// JMH Benchmarking
const val jmhCore = "org.openjdk.jmh:jmh-core:${Versions.jmhCore}"
const val jmhGeneratorAnnprocess = "org.openjdk.jmh:jmh-core:${Versions.jmhGeneratorAnnprocess}"
const val jmhGeneratorBytecode = "org.openjdk.jmh:jmh-core:${Versions.jmhGeneratorBytecode}"
}

object Plugins {
Expand All @@ -114,4 +128,4 @@ object Plugins {
const val ktlint = "org.jlleitschuh.gradle.ktlint"
const val library = "org.gradle.java-library"
const val testFixtures = "org.gradle.java-test-fixtures"
}
}
2 changes: 2 additions & 0 deletions examples/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ application {
dependencies {
implementation(project(":partiql-lang"))
implementation(project(":partiql-types"))
implementation(Deps.kotlinxCoroutines)
implementation(Deps.kotlinxCoroutinesJdk8)
implementation(Deps.awsSdkS3)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,25 @@

import com.amazon.ion.IonSystem;
import com.amazon.ion.system.IonSystemBuilder;

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import kotlin.OptIn;
import kotlin.coroutines.EmptyCoroutineContext;
import kotlinx.coroutines.CoroutineScopeKt;
import kotlinx.coroutines.CoroutineStart;
import kotlinx.coroutines.future.FutureKt;
import org.jetbrains.annotations.NotNull;
import org.partiql.annotations.ExperimentalPartiQLCompilerPipeline;
import org.partiql.examples.util.Example;
import org.partiql.lang.compiler.PartiQLCompiler;
import org.partiql.lang.compiler.PartiQLCompilerBuilder;
import org.partiql.lang.compiler.PartiQLCompilerPipeline;
import org.partiql.lang.compiler.PartiQLCompilerAsync;
import org.partiql.lang.compiler.PartiQLCompilerAsyncBuilder;
import org.partiql.lang.compiler.PartiQLCompilerPipelineAsync;
import org.partiql.lang.eval.Bindings;
import org.partiql.lang.eval.EvaluationSession;
import org.partiql.lang.eval.ExprValue;
import org.partiql.lang.eval.PartiQLResult;
import org.partiql.lang.eval.PartiQLStatementAsync;
import org.partiql.lang.eval.ProjectionIterationBehavior;
import org.partiql.lang.planner.EvaluatorOptions;
import org.partiql.lang.planner.GlobalResolutionResult;
Expand All @@ -25,14 +33,14 @@
import java.io.PrintStream;

/**
* This is an example of using PartiQLCompilerPipeline in Java.
* This is an example of using PartiQLCompilerPipelineAsync in Java.
* It is an experimental feature and is marked as such, with @OptIn, in this example.
* Unfortunately, it seems like the Java does not recognize the Optin annotation specified in Kotlin.
* Unfortunately, it seems like the Java does not recognize the OptIn annotation specified in Kotlin.
* Java users will be able to access the experimental APIs freely, and not be warned at all.
*/
public class PartiQLCompilerPipelineJavaExample extends Example {
public class PartiQLCompilerPipelineAsyncJavaExample extends Example {

public PartiQLCompilerPipelineJavaExample(@NotNull PrintStream out) {
public PartiQLCompilerPipelineAsyncJavaExample(@NotNull PrintStream out) {
super(out);
}

Expand All @@ -49,10 +57,7 @@ public void run() {
"{name: \"mary\", age: 19}" +
"]";

final Bindings<ExprValue> globalVariables = Bindings.<ExprValue>lazyBindingsBuilder().addBinding("myTable", () -> {
ExprValue exprValue = ExprValue.of(ion.singleValue(myTable));
return exprValue;
}).build();
final Bindings<ExprValue> globalVariables = Bindings.<ExprValue>lazyBindingsBuilder().addBinding("myTable", () -> ExprValue.of(ion.singleValue(myTable))).build();

final EvaluationSession session = EvaluationSession.builder()
.globals(globalVariables)
Expand All @@ -79,17 +84,41 @@ public void run() {
final PartiQLPlanner planner = PartiQLPlannerBuilder.standard().globalVariableResolver(globalVariableResolver).build();

@OptIn(markerClass = ExperimentalPartiQLCompilerPipeline.class)
final PartiQLCompiler compiler = PartiQLCompilerBuilder.standard().options(evaluatorOptions).build();
final PartiQLCompilerAsync compiler = PartiQLCompilerAsyncBuilder.standard().options(evaluatorOptions).build();

@OptIn(markerClass = ExperimentalPartiQLCompilerPipeline.class)
final PartiQLCompilerPipeline pipeline = new PartiQLCompilerPipeline(
final PartiQLCompilerPipelineAsync pipeline = new PartiQLCompilerPipelineAsync(
parser, planner, compiler
);

String query = "SELECT t.name FROM myTable AS t WHERE t.age > 20";

print("PartiQL query:", query);
PartiQLResult result = pipeline.compile(query).eval(session);

// Calling Kotlin coroutines from Java requires some additional libraries from `kotlinx.coroutines.future`
// to return a `java.util.concurrent.CompletableFuture`. If a use case arises to call the
// `PartiQLCompilerPipelineAsync` APIs directly from Java, we can add Kotlin functions that directly return
// Java's async libraries (e.g. in https://stackoverflow.com/a/52887677).
CompletableFuture<PartiQLStatementAsync> statementFuture = FutureKt.future(
CoroutineScopeKt.CoroutineScope(EmptyCoroutineContext.INSTANCE),
EmptyCoroutineContext.INSTANCE,
CoroutineStart.DEFAULT,
(scope, continuation) -> pipeline.compile(query, continuation)
);

PartiQLResult result;
try {
PartiQLStatementAsync statement = statementFuture.get();
CompletableFuture<PartiQLResult> resultFuture = FutureKt.future(
CoroutineScopeKt.CoroutineScope(EmptyCoroutineContext.INSTANCE),
EmptyCoroutineContext.INSTANCE,
CoroutineStart.DEFAULT,
(scope, continuation) -> statement.eval(session, continuation)
);
result = resultFuture.get();
} catch (InterruptedException | ExecutionException e) {
throw new RuntimeException(e);
}
ExprValue exprValue = null;
if (result instanceof PartiQLResult.Value) {
exprValue = ((PartiQLResult.Value) result).getValue();
Expand All @@ -100,4 +129,4 @@ public void run() {

print("result", exprValue);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package org.partiql.examples

import com.amazon.ion.system.IonSystemBuilder
import kotlinx.coroutines.runBlocking
import org.partiql.annotations.ExperimentalPartiQLCompilerPipeline
import org.partiql.examples.util.Example
import org.partiql.lang.compiler.PartiQLCompilerPipeline
import org.partiql.lang.compiler.PartiQLCompilerPipelineAsync
import org.partiql.lang.eval.Bindings
import org.partiql.lang.eval.EvaluationSession
import org.partiql.lang.eval.ExprValue
Expand All @@ -20,7 +21,7 @@ import java.io.PrintStream
* One way to do so is to add the `Optin(Experimental<X>::class) before the class. where <X> is the feature name.
* Also see: https://kotlinlang.org/docs/opt-in-requirements.html#module-wide-opt-in
*/
class PartiQLCompilerPipelineExample(out: PrintStream) : Example(out) {
class PartiQLCompilerPipelineAsyncExample(out: PrintStream) : Example(out) {

private val myIonSystem = IonSystemBuilder.standard().build()

Expand Down Expand Up @@ -59,7 +60,7 @@ class PartiQLCompilerPipelineExample(out: PrintStream) : Example(out) {
.build()

@OptIn(ExperimentalPartiQLCompilerPipeline::class)
private val partiQLCompilerPipeline = PartiQLCompilerPipeline.build {
private val partiQLCompilerPipeline = PartiQLCompilerPipelineAsync.build {
planner
.globalVariableResolver(globalVariableResolver)
compiler
Expand All @@ -71,7 +72,10 @@ class PartiQLCompilerPipelineExample(out: PrintStream) : Example(out) {

print("PartiQL query:", query)
@OptIn(ExperimentalPartiQLCompilerPipeline::class)
val exprValue = when (val result = partiQLCompilerPipeline.compile(query).eval(session)) {
val result = runBlocking {
partiQLCompilerPipeline.compile(query).eval(session)
}
val exprValue = when (result) {
is PartiQLResult.Value -> result.value
is PartiQLResult.Delete,
is PartiQLResult.Explain.Domain,
Expand Down
10 changes: 6 additions & 4 deletions examples/src/main/kotlin/org/partiql/examples/util/Main.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ import org.partiql.examples.EvaluationWithLazyBindings
import org.partiql.examples.ParserErrorExample
import org.partiql.examples.ParserExample
import org.partiql.examples.ParserJavaExample
import org.partiql.examples.PartiQLCompilerPipelineExample
import org.partiql.examples.PartiQLCompilerPipelineJavaExample
import org.partiql.examples.PartiQLCompilerPipelineAsyncExample
import org.partiql.examples.PartiQLCompilerPipelineAsyncJavaExample
import org.partiql.examples.PartialEvaluationVisitorTransformExample
import org.partiql.examples.PreventJoinVisitorExample
import org.partiql.examples.S3JavaExample
Expand All @@ -26,7 +26,9 @@ private val examples = mapOf(
S3JavaExample::class.java.simpleName to S3JavaExample(System.out),
EvaluationJavaExample::class.java.simpleName to EvaluationJavaExample(System.out),
ParserJavaExample::class.java.simpleName to ParserJavaExample(System.out),
PartiQLCompilerPipelineJavaExample::class.java.simpleName to PartiQLCompilerPipelineJavaExample(System.out),
PartiQLCompilerPipelineAsyncJavaExample::class.java.simpleName to PartiQLCompilerPipelineAsyncJavaExample(
System.out
),

// Kotlin Examples
CsvExprValueExample::class.java.simpleName to CsvExprValueExample(System.out),
Expand All @@ -39,7 +41,7 @@ private val examples = mapOf(
PartialEvaluationVisitorTransformExample::class.java.simpleName to PartialEvaluationVisitorTransformExample(System.out),
PreventJoinVisitorExample::class.java.simpleName to PreventJoinVisitorExample(System.out),
SimpleExpressionEvaluation::class.java.simpleName to SimpleExpressionEvaluation(System.out),
PartiQLCompilerPipelineExample::class.java.simpleName to PartiQLCompilerPipelineExample(System.out)
PartiQLCompilerPipelineAsyncExample::class.java.simpleName to PartiQLCompilerPipelineAsyncExample(System.out)
)

fun main(args: Array<String>) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ package org.partiql.examples
import org.partiql.examples.util.Example
import java.io.PrintStream

class PartiQLCompilerPipelineExampleTest : BaseExampleTest() {
override fun example(out: PrintStream): Example = PartiQLCompilerPipelineExample(out)
class PartiQLCompilerPipelineAsyncExampleTest : BaseExampleTest() {
override fun example(out: PrintStream): Example = PartiQLCompilerPipelineAsyncExample(out)

override val expected = """
|PartiQL query:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@ package org.partiql.examples
import org.partiql.examples.util.Example
import java.io.PrintStream

class PartiQLCompilerPipelineJavaExampleTest : BaseExampleTest() {
override fun example(out: PrintStream): Example = PartiQLCompilerPipelineJavaExample(out)
class PartiQLCompilerPipelineAsyncJavaExampleTest : BaseExampleTest() {
override fun example(out: PrintStream): Example =
PartiQLCompilerPipelineAsyncJavaExample(out)

override val expected = """
|PartiQL query:
Expand Down
1 change: 1 addition & 0 deletions partiql-cli/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ dependencies {
implementation(Deps.joda)
implementation(Deps.picoCli)
implementation(Deps.kotlinReflect)
implementation(Deps.kotlinxCoroutines)
testImplementation(Deps.mockito)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import com.amazon.ionelement.api.ionInt
import com.amazon.ionelement.api.ionString
import com.amazon.ionelement.api.ionStructOf
import com.amazon.ionelement.api.toIonValue
import kotlinx.coroutines.runBlocking
import org.partiql.annotations.ExperimentalPartiQLCompilerPipeline
import org.partiql.cli.Debug
import org.partiql.cli.functions.QueryDDB
Expand All @@ -29,8 +30,8 @@ import org.partiql.cli.functions.WriteFile_1
import org.partiql.cli.functions.WriteFile_2
import org.partiql.cli.utils.ServiceLoaderUtil
import org.partiql.lang.CompilerPipeline
import org.partiql.lang.compiler.PartiQLCompilerBuilder
import org.partiql.lang.compiler.PartiQLCompilerPipeline
import org.partiql.lang.compiler.PartiQLCompilerAsyncBuilder
import org.partiql.lang.compiler.PartiQLCompilerPipelineAsync
import org.partiql.lang.eval.CompileOptions
import org.partiql.lang.eval.EvaluationSession
import org.partiql.lang.eval.ExprFunction
Expand All @@ -50,7 +51,7 @@ import java.nio.file.Path
import java.time.ZoneOffset

/**
* A means by which we can run both the EvaluatingCompiler and PartiQLCompilerPipeline
* A means by which we can run both the EvaluatingCompiler and [PartiQLCompilerPipelineAsync].
*/
internal sealed class AbstractPipeline(open val options: PipelineOptions) {

Expand Down Expand Up @@ -163,7 +164,7 @@ internal sealed class AbstractPipeline(open val options: PipelineOptions) {
}

/**
* Wraps the PartiQLCompilerPipeline
* Wraps the [PartiQLCompilerPipelineAsync]
*/
@OptIn(ExperimentalPartiQLCompilerPipeline::class)
class PipelineExperimental(options: PipelineOptions) : AbstractPipeline(options) {
Expand All @@ -183,17 +184,19 @@ internal sealed class AbstractPipeline(open val options: PipelineOptions) {

override fun compile(input: String, session: EvaluationSession): PartiQLResult {
val globalVariableResolver = createGlobalVariableResolver(session)
val pipeline = PartiQLCompilerPipeline(
val pipeline = PartiQLCompilerPipelineAsync(
parser = options.parser,
planner = PartiQLPlannerBuilder.standard()
.options(plannerOptions)
.globalVariableResolver(globalVariableResolver)
.build(),
compiler = PartiQLCompilerBuilder.standard()
compiler = PartiQLCompilerAsyncBuilder.standard()
.options(evaluatorOptions)
.build(),
)
return pipeline.compile(input).eval(session)
return runBlocking {
pipeline.compile(input).eval(session)
}
}

private fun createGlobalVariableResolver(session: EvaluationSession) = GlobalVariableResolver {
Expand Down
Loading

1 comment on commit b063e52

@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: b063e52 Previous: b938fda Ratio
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithInterruptible 257.9747043397694 us/op 253.9264821569624 us/op 1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithoutInterruptible 263.7258741697757 us/op 263.25459574041344 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithInterruptible 230.11305955948805 us/op 247.09542529992873 us/op 0.93
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithoutInterruptible 224.92991449567262 us/op 233.6200790248187 us/op 0.96
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithInterruptible 163.42736581921412 us/op 180.5274313679425 us/op 0.91
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithoutInterruptible 173.507857643011 us/op 180.42500008288908 us/op 0.96
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithInterruptible 13395009.411950001 us/op 13185842.384599999 us/op 1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithoutInterruptible 12930301.966250002 us/op 13038208.600250002 us/op 0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithInterruptible 5252022.3024 us/op 5324513.766049999 us/op 0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithoutInterruptible 4869993.727149999 us/op 4987586.038600001 us/op 0.98
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithInterruptible 42.00845201692415 us/op 37.941762011570134 us/op 1.11
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithoutInterruptible 38.90389681997671 us/op 38.51967244659332 us/op 1.01
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithInterruptible 12907303.0446 us/op 13049730.676049998 us/op 0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithoutInterruptible 13416627.816449998 us/op 13186972.267349998 us/op 1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithInterruptible 4993263.8961 us/op 5171125.65075 us/op 0.97
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithoutInterruptible 5633216.684350001 us/op 4866874.61865 us/op 1.16
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithInterruptible 98766.25582727273 us/op 92091.82018181817 us/op 1.07
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithoutInterruptible 97630.99657727274 us/op 102493.34569227272 us/op 0.95
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler15 77.60085901383758 us/op 81.00265138633526 us/op 0.96
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler30 154.80549816684604 us/op 151.91263488195173 us/op 1.02
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator15 330979.425525 us/op 372889.27485000005 us/op 0.89
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30 730348.7407249999 us/op 634947.3446250001 us/op 1.15
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30WithData10 7192940.67985 us/op 7333336.551700001 us/op 0.98
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser15 136.38754263385627 us/op 134.62941030113527 us/op 1.01
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser30 244.4059448269291 us/op 252.03549675874052 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameCaseWhenThen 32.883556365402306 us/op 32.63670414770291 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery 41.85726485917123 us/op 41.773080389762136 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery01 241.88553211938415 us/op 231.9703572856562 us/op 1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery02 407.3133413965208 us/op 412.11675138853525 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExceptUnionIntersectSixty 157.87569559841177 us/op 157.51582035331634 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExec20Expressions 46.96191905675916 us/op 47.650199428731746 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameFromLet 32.52005941898066 us/op 33.443498839511435 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPattern 31.258106008358983 us/op 31.3233294121979 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPreFilters 57.00440429658708 us/op 56.026353659055 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGroupLimit 37.7777904398103 us/op 37.47867819284265 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameLongFromSourceOrderBy 47.847173419901644 us/op 46.87202263926254 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameManyJoins 50.19805982025291 us/op 48.76041855909134 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedAggregates 84.32376141711953 us/op 82.9474496851355 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedParen 13.445884917511444 us/op 13.213176108629956 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNamePivot 51.4766337821265 us/op 51.41065523528065 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery15OrsAndLikes 161.20395251759106 us/op 164.24830043652025 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery30Plus 83.8764912217986 us/op 82.71971322337424 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFunc 38.33835785335975 us/op 38.020463602957236 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFuncInProjection 42.36579314278198 us/op 42.556309842179935 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryList 59.5293176798909 us/op 58.18006704294457 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryNestedSelect 592.6845468085103 us/op 581.4845036136333 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuerySimple 12.111947234135986 us/op 11.920765370524904 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralJoins 16.53470096683361 us/op 16.58779991611936 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralProjections 55.7731647601762 us/op 57.41084339800153 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralSelect 154.05747044391353 us/op 155.7683492143962 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSimpleInsert 22.422323563827742 us/op 23.41440005829231 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeJoins 16.55858611330553 us/op 16.45584171117019 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeProjections 22.42988912302561 us/op 22.432300587433847 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeSelect 40.36982872028152 us/op 39.774859364776546 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameTimeZone 19.067489032254233 us/op 18.74426461974648 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery 192.66115311499323 us/op 195.4005060086847 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery01 773.9087573042766 us/op 757.7768566665733 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameCaseWhenThen 18.81125322781944 us/op 17.956262845320047 us/op 1.05
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery 189.05344603309078 us/op 188.18604769224487 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery01 85.067816368174 us/op 83.9679663175 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExceptUnionIntersectSixty 159.2038624267157 us/op 162.22660854622754 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExec20Expressions 45.1973659194282 us/op 45.63798762534712 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameFromLet 27.546554203820172 us/op 27.972933958211165 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPattern 31.311882152892327 us/op 28.019092522776674 us/op 1.12
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPreFilters 54.4352413221669 us/op 53.48728823854445 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGroupLimit 25.448631077304363 us/op 25.02106889110116 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameLongFromSourceOrderBy 99.79041908273898 us/op 98.12964390187912 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameManyJoins 33.73480894626453 us/op 33.329376188424945 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedAggregates 72.50507862062437 us/op 72.12898835353239 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedParen 61.48857794673963 us/op 60.46424105100569 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNamePivot 48.841060387281075 us/op 48.18705442146096 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery15OrsAndLikes 129.62467885494308 us/op 136.11904687068525 us/op 0.95
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery30Plus 47.71894038705166 us/op 44.876723898559845 us/op 1.06
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFunc 100.53182750900446 us/op 97.91789819760437 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFuncInProjection 64.79031267560245 us/op 63.98375693601789 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryList 56.29237136246246 us/op 55.73233796626791 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryNestedSelect 102.01836636106285 us/op 106.69038708661074 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuerySimple 8.591087014633052 us/op 8.473694757228914 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralJoins 52.81433926291843 us/op 52.559940125207824 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralProjections 41.567747785050805 us/op 40.591940223327846 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralSelect 76.69070006361767 us/op 76.20389757258441 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSimpleInsert 14.88057519660037 us/op 15.254388858931055 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeJoins 14.937093835058558 us/op 14.539976877427515 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeProjections 13.232949484757043 us/op 12.677160335095191 us/op 1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeSelect 24.064742830802043 us/op 24.33961996845139 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameTimeZone 5.959623466044688 us/op 5.942798503219908 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery 302.30720842023527 us/op 301.57426768912495 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery01 876.1944123536884 us/op 851.0747385559462 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLCompiler 7.020905197905327 us/op 7.021616355493589 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLEvaluator 1.768040789644547 us/op 1.9583482851159555 us/op 0.90
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLParser 7.7326191207882315 us/op 7.514017934737668 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery1 7.262419278683259 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery2 13.523125922106365 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery3 15.497928724493189 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery4 22.442516756950518 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery5 23.15115684467033 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery1 145075.82409285713 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery10 15.547847997769784 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery11 2.4900319076146404 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery2 247597.19965749996 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery3 234726.22198000006 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery4 305310.45787499996 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery5 304528.4648625001 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery6 352410.2764833333 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery7 29660.930034632038 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery8 2793.503684022089 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery9 262.0075995730333 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery1 6.925339140071138 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery2 12.942923163641288 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery3 15.343846235991876 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery4 20.974221116998912 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery5 21.709043113894307 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery1 133166.43640625002 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery10 9.446444545519947 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery11 1.354113895416059 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery2 194619.3115716667 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery3 196034.25821333332 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery4 243355.24388000002 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery5 224288.00266 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery6 282591.9326625 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery7 23394.578160696772 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery8 2179.6935067896025 us/op
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery9 198.40849882370952 us/op
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameCaseWhenThen 32.730189658322175 us/op 31.837600244569966 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery 40.37156835996825 us/op 39.05891000099715 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery01 243.10232181101546 us/op 237.17198370336286 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery02 402.21704545144655 us/op 404.51250636116004 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExceptUnionIntersectSixty 155.97192215276425 us/op 154.888923769111 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExec20Expressions 44.11393253752575 us/op 45.59602181446185 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameFromLet 32.70282741994727 us/op 33.14876160348365 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPattern 31.326915816576935 us/op 31.466836912318193 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPreFilters 56.512090212649696 us/op 55.71836844719233 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGroupLimit 39.73660117368494 us/op 38.85072788106541 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameLongFromSourceOrderBy 47.66637395126619 us/op 46.63610836527722 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameManyJoins 48.26004658393608 us/op 46.965193120976124 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedAggregates 84.05107664502499 us/op 82.63915220361407 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedParen 12.796586672780952 us/op 13.009952227871304 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNamePivot 50.82282718421746 us/op 52.08271028672432 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery15OrsAndLikes 160.9862790866102 us/op 160.73287062270194 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery30Plus 83.03581061715097 us/op 84.86498970041825 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFunc 37.35830110498978 us/op 38.11065599166638 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFuncInProjection 41.881856737246544 us/op 42.12433685007035 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryList 57.38243423203145 us/op 57.2951510915042 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryNestedSelect 585.3650130934791 us/op 572.4740125136412 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuerySimple 11.629747643673564 us/op 11.545181651541707 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralJoins 16.00566705367543 us/op 16.16544968788047 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralProjections 53.15899831445496 us/op 54.41724185597857 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralSelect 155.51316417142917 us/op 153.8821623505184 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSimpleInsert 21.291700249519707 us/op 21.868053626448734 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeJoins 16.04510611397394 us/op 15.892605907464366 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeProjections 21.509894015239635 us/op 21.672031109784893 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeSelect 39.613636747222 us/op 39.71924272902455 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameTimeZone 18.54673520117055 us/op 18.104887835364003 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery 193.38992414644375 us/op 187.85359197786812 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery01 753.7374588444073 us/op 763.7944635237225 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameCaseWhenThen 23.52501737780935 us/op 23.827681553272516 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery 241.2189125034487 us/op 239.4922278460853 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery01 120.61336832724774 us/op 119.62880592779825 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExceptUnionIntersectSixty 260.98874630261207 us/op 258.9490159160041 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExec20Expressions 62.26626982285188 us/op 63.904550776036444 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameFromLet 40.28101883651493 us/op 40.61639776589109 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPattern 45.286371958725745 us/op 46.01132515734563 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPreFilters 80.29735429297867 us/op 80.09187850085304 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGroupLimit 28.660556862376467 us/op 28.89697382921144 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameLongFromSourceOrderBy 117.19688940838145 us/op 115.52280907650615 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameManyJoins 42.38655766966233 us/op 42.01764462644134 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedAggregates 99.01397460724876 us/op 95.93807922856965 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedParen 67.29883873890358 us/op 68.64679594237236 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNamePivot 64.69661518659184 us/op 64.00384476471257 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery15OrsAndLikes 197.0239195520913 us/op 191.87630524868467 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery30Plus 58.77960000376665 us/op 57.82692240352899 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFunc 116.90548790784109 us/op 113.77544325033496 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFuncInProjection 79.3723097070067 us/op 79.00258147055021 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryList 69.17478103442252 us/op 69.00293909088222 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryNestedSelect 136.51449992484342 us/op 138.2784777586943 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuerySimple 11.599508072278796 us/op 12.154389943592317 us/op 0.95
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralJoins 78.0816854916167 us/op 80.14104977985275 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralProjections 63.11118430367353 us/op 63.76843560302659 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralSelect 115.36850394415444 us/op 115.11695487767872 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSimpleInsert 21.495365273373174 us/op 21.43986010387786 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeJoins 21.218179651584087 us/op 20.83970524963649 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeProjections 18.582357111457153 us/op 18.702476156224712 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeSelect 35.93462984345275 us/op 36.27103783239185 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameTimeZone 7.543280483304471 us/op 7.54263842008608 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery 461.5323611882194 us/op 458.2843351972794 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery01 1141.135812423416 us/op 1121.3886171976264 us/op 1.02

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

Please sign in to comment.