Skip to content

Commit

Permalink
Refactors partiql-tests-runner for multiple engines (#1289)
Browse files Browse the repository at this point in the history
  • Loading branch information
RCHowell authored Dec 8, 2023
1 parent 7c9cc9a commit 1c3c79a
Show file tree
Hide file tree
Showing 20 changed files with 489 additions and 356 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/conformance-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
# Run the conformance tests and save to an Ion file.
- name: gradle test of the conformance tests (can fail) and save to Ion file
continue-on-error: true
run: gradle :test:partiql-tests-runner:test --tests "*ConformanceTestsReportRunner" -PconformanceReport
run: gradle :test:partiql-tests-runner:test --tests "*ConformanceTestReport" -PconformanceReport
# Upload conformance report for future viewing and comparison with future runs.
- name: Upload `conformance_test_results.ion`
uses: actions/upload-artifact@v3
Expand Down Expand Up @@ -86,7 +86,7 @@ jobs:
continue-on-error: true
run: |
cd ${{ github.event.pull_request.base.sha }}
gradle :test:partiql-tests-runner:test --tests "*ConformanceTestsReportRunner" -PconformanceReport
gradle :test:partiql-tests-runner:test --tests "*ConformanceTestReport" -PconformanceReport
- name: (If download of target branch conformance report fails) Move conformance test report of target branch to ./artifact directory
if: ${{ steps.download-report.outcome == 'failure' }}
continue-on-error: true
Expand Down
6 changes: 3 additions & 3 deletions test/partiql-tests-runner/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,19 @@ This package enables:

```shell
# default, test data from partiql-tests submodule will be used
./gradlew :test:partiql-tests-runner:test --tests "*ConformanceTestsReportRunner" -PconformanceReport
./gradlew :test:partiql-tests-runner:test --tests "*ConformanceTestReport" -PconformanceReport

# override test data location
PARTIQL_TESTS_DATA=/path/to/partiql-tests/data \
./gradlew :test:partiql-tests-runner:test --tests "*ConformanceTestsReportRunner" -PconformanceReport
./gradlew :test:partiql-tests-runner:test --tests "*ConformanceTestReport" -PconformanceReport
```
The report is written into file `test/partiql-tests-runner/conformance_test_results.ion`.

## Run Conformance Tests in UI

The above project property `-PconformanceReport` is checked in `test/partiql-tests-runner/build.gradle.kts`,
to exclude the conformance test suite from executing during a normal project-build test run.
Unfortunately, this also disables running `ConformanceTestsReportRunner` in a UI runner.
Unfortunately, this also disables running `ConformanceTestReport` in a UI runner.
To make that possible locally, temporarily comment out the check in `test/partiql-tests-runner/build.gradle.kts`.

## Compare Conformance Reports locally
Expand Down
6 changes: 3 additions & 3 deletions test/partiql-tests-runner/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ tasks.test {
environment(Env.PARTIQL_EVAL, file("$tests/eval/").absolutePath)
environment(Env.PARTIQL_EQUIV, file("$tests/eval-equiv/").absolutePath)

// To make it possible to run ConformanceTestsReportRunner in unit test UI runner, comment out this check:
// To make it possible to run ConformanceTestReport in unit test UI runner, comment out this check:
if (!project.hasProperty("conformanceReport")) {
exclude("org/partiql/runner/TestRunner\$ConformanceTestsReportRunner.class")
exclude("org/partiql/runner/ConformanceTestReport.class")
}

// May 2023: Disabled conformance testing during regular project build, because fail lists are out of date.
exclude("org/partiql/runner/TestRunner\$DefaultConformanceTestRunner.class")
exclude("org/partiql/runner/ConformanceTest.class")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package org.partiql.runner

import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.ArgumentsSource
import org.partiql.runner.schema.TestCase
import org.partiql.runner.skip.LANG_KOTLIN_EVAL_EQUIV_FAIL_LIST
import org.partiql.runner.skip.LANG_KOTLIN_EVAL_FAIL_LIST
import org.partiql.runner.test.TestProvider
import org.partiql.runner.test.TestRunner
import org.partiql.runner.test.executor.LegacyExecutor

/**
* Runs the conformance tests with an expected list of failing tests. Ensures that tests not in the failing list
* succeed with the expected result. Ensures that tests included in the failing list fail.
*
* These tests are included in the normal test/building.
* Update May 2023: Now excluded from the normal build, because the fail lists are out of date.
* TODO: Come up with a low-burden method of maintaining fail / exclusion lists.
*/
class ConformanceTest {

private val factory = LegacyExecutor.Factory
private val runner = TestRunner(factory)

// Tests the eval tests with the Kotlin implementation
@ParameterizedTest(name = "{arguments}")
@ArgumentsSource(TestProvider.Eval::class)
fun validatePartiQLEvalTestData(tc: TestCase) {
when (tc) {
is TestCase.Eval -> runner.test(tc, LANG_KOTLIN_EVAL_FAIL_LIST)
else -> error("Unsupported test case category")
}
}

// Tests the eval equivalence tests with the Kotlin implementation
@ParameterizedTest(name = "{arguments}")
@ArgumentsSource(TestProvider.Equiv::class)
fun validatePartiQLEvalEquivTestData(tc: TestCase) {
when (tc) {
is TestCase.Equiv -> runner.test(tc, LANG_KOTLIN_EVAL_EQUIV_FAIL_LIST)
else -> error("Unsupported test case category")
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package org.partiql.runner

import org.junit.jupiter.api.extension.ExtendWith
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.ArgumentsSource
import org.partiql.runner.report.ReportGenerator
import org.partiql.runner.schema.TestCase
import org.partiql.runner.test.TestProvider
import org.partiql.runner.test.TestRunner
import org.partiql.runner.test.executor.LegacyExecutor

/**
* Runs the conformance tests without a fail list, so we can document the passing/failing tests in the conformance
* report.
*
* These tests are excluded from normal testing/building unless the `conformanceReport` gradle property is
* specified (i.e. `gradle test ... -PconformanceReport`)
*/
@ExtendWith(ReportGenerator::class)
class ConformanceTestReport {

private val factory = LegacyExecutor.Factory
private val runner = TestRunner(factory)

// Tests the eval tests with the Kotlin implementation without a fail list
@ParameterizedTest(name = "{arguments}")
@ArgumentsSource(TestProvider.Eval::class)
fun validatePartiQLEvalTestData(tc: TestCase) {
when (tc) {
is TestCase.Eval -> runner.test(tc, emptyList())
else -> error("Unsupported test case category")
}
}

// Tests the eval equivalence tests with the Kotlin implementation without a fail list
@ParameterizedTest(name = "{arguments}")
@ArgumentsSource(TestProvider.Equiv::class)
fun validatePartiQLEvalEquivTestData(tc: TestCase) {
when (tc) {
is TestCase.Equiv -> runner.test(tc, emptyList())
else -> error("Unsupported test case category")
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package org.partiql.runner

import com.amazon.ion.system.IonSystemBuilder

/**
* IonSystem for legacy pipelines and value comparison.
*/
public val ION = IonSystemBuilder.standard().build()

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package org.partiql.runner.report

import com.amazon.ion.IonType
import com.amazon.ion.system.IonTextWriterBuilder
import org.junit.jupiter.api.extension.AfterAllCallback
import org.junit.jupiter.api.extension.ExtensionContext
import org.junit.jupiter.api.extension.TestWatcher
import java.io.File

class ReportGenerator : TestWatcher, AfterAllCallback {
var failingTests = emptySet<String>()
var passingTests = emptySet<String>()
var ignoredTests = emptySet<String>()
override fun testFailed(context: ExtensionContext?, cause: Throwable?) {
failingTests += context?.displayName ?: ""
super.testFailed(context, cause)
}

override fun testSuccessful(context: ExtensionContext?) {
passingTests += context?.displayName ?: ""
super.testSuccessful(context)
}

override fun afterAll(p0: ExtensionContext?) {
val file = File("./conformance_test_results.ion")
val outputStream = file.outputStream()
val writer = IonTextWriterBuilder.pretty().build(outputStream)
writer.stepIn(IonType.STRUCT) // in: outer struct

// set struct field for passing
writer.setFieldName("passing")
writer.stepIn(IonType.LIST)
passingTests.forEach { passingTest ->
writer.writeString(passingTest)
}
writer.stepOut()
// set struct field for failing
writer.setFieldName("failing")
writer.stepIn(IonType.LIST)
failingTests.forEach { failingTest ->
writer.writeString(failingTest)
}
writer.stepOut()

// set struct field for ignored
writer.setFieldName("ignored")
writer.stepIn(IonType.LIST)
ignoredTests.forEach { ignoredTest ->
writer.writeString(ignoredTest)
}
writer.stepOut()

writer.stepOut() // out: outer struct
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package org.partiql.runner.schema

import com.amazon.ion.IonValue

sealed class Assertion {
data class EvaluationSuccess(val expectedResult: IonValue) : Assertion()
object EvaluationFailure : Assertion()
// TODO: other assertion and test categories: https://github.com/partiql/partiql-tests/issues/35
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package org.partiql.runner.schema

data class EquivalenceClass(
val id: String,
val statements: List<String>,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package org.partiql.runner.schema

import com.amazon.ion.IonStruct

data class Namespace(
var env: IonStruct,
val namespaces: MutableList<Namespace>,
val testCases: MutableList<TestCase>,
val equivClasses: MutableMap<String, List<String>>
)
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.partiql.runner
package org.partiql.runner.schema

import com.amazon.ion.IonList
import com.amazon.ion.IonStruct
Expand Down Expand Up @@ -47,7 +47,7 @@ private fun parseTestCase(testStruct: IonStruct, curNamespace: Namespace): List<

when (statement.type) {
// statement being an IonString indicates that this is an Eval test case
IonType.STRING -> EvalTestCase(
IonType.STRING -> TestCase.Eval(
name = name,
statement = statement.stringValue() ?: error("Expected `statement` to be a string"),
env = env.asIonStruct(),
Expand All @@ -57,7 +57,7 @@ private fun parseTestCase(testStruct: IonStruct, curNamespace: Namespace): List<
// statement being an IonSymbol indicates that this is an eval equivalence test case
IonType.SYMBOL -> {
val equivClassId = statement.stringValue() ?: error("Expected `statement` to be a symbol")
EvalEquivTestCase(
TestCase.Equiv(
name = name,
statements = curNamespace.equivClasses[equivClassId] ?: error("Equiv class $equivClassId not defined in current namespace"),
env = env.asIonStruct(),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package org.partiql.runner.schema

import com.amazon.ion.IonStruct
import org.partiql.lang.eval.CompileOptions

sealed class TestCase {
abstract val name: String
abstract val env: IonStruct
abstract val compileOptions: CompileOptions
abstract val assertion: Assertion

data class Equiv(
override val name: String,
val statements: List<String>,
override val env: IonStruct,
override val compileOptions: CompileOptions,
override val assertion: Assertion
) : TestCase() {
override fun toString(): String {
return name + ", compileOption: " + compileOptions.typingMode
}
}

data class Eval(
override val name: String,
val statement: String,
override val env: IonStruct,
override val compileOptions: CompileOptions,
override val assertion: Assertion
) : TestCase() {
override fun toString(): String {
return name + ", compileOption: " + compileOptions.typingMode
}
}
}
Loading

1 comment on commit 1c3c79a

@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: 1c3c79a Previous: 124e87f Ratio
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithInterruptible 275.08167655884756 us/op 264.5859767823037 us/op 1.04
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithoutInterruptible 259.4467977869029 us/op 262.83830823469185 us/op 0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithInterruptible 244.4911796966275 us/op 222.20312592921033 us/op 1.10
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithoutInterruptible 237.30498750651591 us/op 231.92258365788294 us/op 1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithInterruptible 172.1136738064709 us/op 168.47798030436542 us/op 1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithoutInterruptible 177.53860029368542 us/op 177.27285922164825 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithInterruptible 12798650.704600003 us/op 13024167.192250002 us/op 0.98
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithoutInterruptible 12698953.638500001 us/op 13186894.90665 us/op 0.96
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithInterruptible 5069813.8725 us/op 5284291.34145 us/op 0.96
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithoutInterruptible 4928765.23635 us/op 5085935.7124 us/op 0.97
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithInterruptible 37.96811365130208 us/op 39.293707919487716 us/op 0.97
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithoutInterruptible 38.50414141205046 us/op 38.49822697253493 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithInterruptible 12903491.11365 us/op 12907855.5861 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithoutInterruptible 12664480.51395 us/op 13239175.299849998 us/op 0.96
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithInterruptible 4907544.857899999 us/op 5198398.709700001 us/op 0.94
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithoutInterruptible 5087802.2048 us/op 4866530.90125 us/op 1.05
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithInterruptible 98734.58502909091 us/op 96504.9919469697 us/op 1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithoutInterruptible 91631.57110037877 us/op 100962.64940954544 us/op 0.91
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler15 78.30976141304204 us/op 80.78978927569341 us/op 0.97
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler30 187.03846804479429 us/op 155.48270707722682 us/op 1.20
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator15 373167.4658 us/op 378647.16483333334 us/op 0.99
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30 736714.8382 us/op 736216.463175 us/op 1.00
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30WithData10 7057953.625549999 us/op 7391771.283249999 us/op 0.95
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser15 128.1026633616168 us/op 132.76730117926425 us/op 0.96
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser30 243.10329461999396 us/op 244.72274058969373 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameCaseWhenThen 32.84862869757637 us/op 33.66620756723985 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery 40.2363548229556 us/op 41.012712868795326 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery01 218.6051453987202 us/op 221.95132992206558 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery02 375.4429095298506 us/op 382.19109827975626 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExceptUnionIntersectSixty 155.08906535346955 us/op 163.97955511117192 us/op 0.95
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExec20Expressions 48.834483399503156 us/op 46.21731757654429 us/op 1.06
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameFromLet 33.35263867593268 us/op 33.37029835314627 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPattern 31.706105926617177 us/op 32.226525940209385 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPreFilters 56.14860429339503 us/op 57.06708607892674 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGroupLimit 38.258544264218 us/op 39.330917201940444 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameLongFromSourceOrderBy 47.07436613110177 us/op 46.961486045898134 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameManyJoins 47.98019174263992 us/op 49.495234264230206 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedAggregates 83.87305944813019 us/op 83.82170785358204 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedParen 13.390341682422484 us/op 13.876834502312343 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNamePivot 50.9433817378748 us/op 51.33345781756452 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery15OrsAndLikes 150.9897418244527 us/op 152.11609511097012 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery30Plus 84.79138721569856 us/op 86.13191876449585 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFunc 37.72591668710545 us/op 38.661963499509014 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFuncInProjection 42.5049964557297 us/op 42.93496424528465 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryList 58.91066660106217 us/op 60.71641090714711 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryNestedSelect 541.9106181214242 us/op 545.547666552827 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuerySimple 12.131269287048863 us/op 12.660379275415867 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralJoins 17.13864992134051 us/op 17.194566560703624 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralProjections 54.94393573612632 us/op 56.06337531001149 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralSelect 155.63090131156815 us/op 157.82613622731503 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSimpleInsert 23.364763049879326 us/op 23.285251257139358 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeJoins 16.65819840690805 us/op 17.027284136828975 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeProjections 22.327802173663155 us/op 22.89946425914661 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeSelect 39.68560693708677 us/op 42.42771363134547 us/op 0.94
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameTimeZone 18.95081179813455 us/op 19.412224951154652 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery 193.0836910507022 us/op 196.39519438893518 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery01 756.2074126601756 us/op 767.9417986858691 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameCaseWhenThen 18.07999175585677 us/op 19.03760499882575 us/op 0.95
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery 183.17770069341645 us/op 182.86405960676944 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery01 83.90683805878953 us/op 89.24700808201044 us/op 0.94
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExceptUnionIntersectSixty 166.6222088958918 us/op 163.74242013385856 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExec20Expressions 47.3722832985659 us/op 48.46577077420313 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameFromLet 26.533923175458597 us/op 26.97190618520196 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPattern 29.548008947782865 us/op 29.83816125265567 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPreFilters 53.449845468772914 us/op 54.1026409711032 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGroupLimit 24.826624051418953 us/op 25.835668955155587 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameLongFromSourceOrderBy 97.19821997984278 us/op 98.69780299638047 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameManyJoins 32.04642848779447 us/op 34.20541055934002 us/op 0.94
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedAggregates 72.82367427582118 us/op 71.52319110310991 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedParen 63.261770668746976 us/op 63.45380979765662 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNamePivot 47.10512662037796 us/op 49.46178785526861 us/op 0.95
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery15OrsAndLikes 128.1855360923765 us/op 131.87268427477088 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery30Plus 45.626963328483875 us/op 46.09285966099803 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFunc 94.94133133680437 us/op 98.09885221874596 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFuncInProjection 63.16384776914872 us/op 63.46894488134732 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryList 56.01947311233994 us/op 56.975375567384376 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryNestedSelect 101.71200299219264 us/op 107.4063402324085 us/op 0.95
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuerySimple 8.502448468794721 us/op 9.280374899248605 us/op 0.92
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralJoins 54.2481076333597 us/op 55.09297355574415 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralProjections 39.53458956664469 us/op 40.888700583662384 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralSelect 77.4352021266124 us/op 74.85984164359829 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSimpleInsert 14.569854781735932 us/op 15.363822220201962 us/op 0.95
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeJoins 14.485229906303129 us/op 14.78838176683089 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeProjections 12.618405795560278 us/op 13.364029738737884 us/op 0.94
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeSelect 24.380232529873663 us/op 24.436118847107117 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameTimeZone 5.945355951044599 us/op 6.120871413958372 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery 291.08945977790364 us/op 314.6646923296227 us/op 0.93
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery01 797.7509408179992 us/op 816.306135060087 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLCompiler 6.712366207405813 us/op 6.936606122869077 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLEvaluator 1.7686056508135592 us/op 1.8656642626120448 us/op 0.95
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLParser 7.502771704911768 us/op 7.795927685509229 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameCaseWhenThen 31.225610024031727 us/op 32.70005409920908 us/op 0.95
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery 40.899146479087015 us/op 40.665396859977704 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery01 217.4202884543985 us/op 223.063502100913 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery02 378.0919646287551 us/op 377.4867312119483 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExceptUnionIntersectSixty 155.59236310139033 us/op 159.19871070836132 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExec20Expressions 43.553090250035 us/op 46.019973757309444 us/op 0.95
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameFromLet 32.026063277890806 us/op 33.11538448810054 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPattern 30.63173044386506 us/op 31.451597629736522 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPreFilters 55.69639026749925 us/op 57.47423286132105 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGroupLimit 38.24674234589749 us/op 40.94202492793217 us/op 0.93
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameLongFromSourceOrderBy 47.45143038059029 us/op 48.51504001517847 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameManyJoins 48.22832796155115 us/op 48.765412884700645 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedAggregates 81.39996305475816 us/op 87.1087598652259 us/op 0.93
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedParen 12.890416319395289 us/op 13.380244863816657 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNamePivot 51.28560340258783 us/op 50.872417648613975 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery15OrsAndLikes 151.92132972545545 us/op 154.26574744145793 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery30Plus 85.21215652943216 us/op 84.57190238642357 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFunc 37.47981483386944 us/op 38.80407779680203 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFuncInProjection 42.086884807729426 us/op 42.91067520074334 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryList 57.992449708039956 us/op 57.39026388463272 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryNestedSelect 545.1229281472249 us/op 559.9227547700468 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuerySimple 11.559920993566694 us/op 12.03846071587203 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralJoins 16.113678985437506 us/op 16.344456297487636 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralProjections 54.609786980515494 us/op 54.315998735047934 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralSelect 154.29563893944902 us/op 158.4453053980024 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSimpleInsert 21.53272501526702 us/op 22.307289961982036 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeJoins 15.780859325862192 us/op 16.700255446490026 us/op 0.94
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeProjections 21.663007190271685 us/op 22.112735799642305 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeSelect 38.846343378849326 us/op 41.23647592192514 us/op 0.94
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameTimeZone 18.65551374601672 us/op 19.003694246786388 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery 188.60723144251492 us/op 188.0958230823288 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery01 763.6096818106572 us/op 759.4813157698245 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameCaseWhenThen 23.468662378439767 us/op 24.172906038264784 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery 243.32623904981682 us/op 246.96146295309353 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery01 119.3410457301733 us/op 119.83971393345205 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExceptUnionIntersectSixty 260.1489631719374 us/op 259.90781909145824 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExec20Expressions 61.33308507038184 us/op 66.74664020889948 us/op 0.92
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameFromLet 38.0031752191436 us/op 40.9966368617235 us/op 0.93
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPattern 46.22511940034 us/op 46.24466843325174 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPreFilters 81.77063861342961 us/op 79.97719018645364 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGroupLimit 27.696842421491265 us/op 28.257376667660743 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameLongFromSourceOrderBy 115.66052811452309 us/op 120.90423393352444 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameManyJoins 42.0414857565605 us/op 42.1931086019478 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedAggregates 100.56505884227062 us/op 99.12105515611562 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedParen 67.49522485875046 us/op 67.40489875472616 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNamePivot 61.93008749516216 us/op 62.436040231955225 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery15OrsAndLikes 187.9960194738942 us/op 190.81920832779159 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery30Plus 57.419170343462326 us/op 59.76711227598928 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFunc 110.66765445651652 us/op 113.68536907815735 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFuncInProjection 78.42801678384481 us/op 79.79315421063336 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryList 68.63749705992802 us/op 69.57979281625087 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryNestedSelect 134.07861471738326 us/op 139.15465714678416 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuerySimple 11.67086225471088 us/op 12.361599374398093 us/op 0.94
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralJoins 75.02002252159545 us/op 77.84372258760735 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralProjections 60.56699299285761 us/op 64.40136332723246 us/op 0.94
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralSelect 111.66415327505983 us/op 116.52991282008023 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSimpleInsert 21.454138464826244 us/op 21.73880612296347 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeJoins 20.4080604604726 us/op 19.85275346722968 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeProjections 18.709800103571986 us/op 18.197263122678148 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeSelect 35.19635578639587 us/op 34.95578607715219 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameTimeZone 7.074989329820393 us/op 7.677414284151856 us/op 0.92
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery 456.02903302369316 us/op 458.71082098608923 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery01 1148.5689128441586 us/op 1134.0569530722878 us/op 1.01

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

Please sign in to comment.