Skip to content

Commit

Permalink
Add custom ktlint rules to prevent Java interop issues (#1414)
Browse files Browse the repository at this point in the history
  • Loading branch information
alancai98 authored Apr 18, 2024
1 parent d302a01 commit 4851cac
Show file tree
Hide file tree
Showing 13 changed files with 333 additions and 5 deletions.
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Ignore custom ktlint rules for tests
[**/test/**.kt]
disabled_rules = custom-ktlint-rules:top-level-internal,custom-ktlint-rules:top-level-public
5 changes: 5 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@ jobs:
GRADLE_OPTS: -Dorg.gradle.jvmargs="-XX:MaxMetaspaceSize=1g"
run: ./gradlew build jacocoTestReport

# Custom ktlint rules are only run when the `custom-ktlint-rules` property is set.
# Once these rules are run by default, this GH Action step can be removed.
- name: Run custom ktlint rules
run: ./gradlew ktlintCheck -Pcustom-ktlint-rules

# Upload coverage for CLI, LANG, PTS, TEST_SCRIPT, and EXAMPLES
- name: Upload CLI coverage
uses: codecov/codecov-action@v3
Expand Down
6 changes: 3 additions & 3 deletions buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -26,23 +26,23 @@ object Versions {
const val detekt = "1.20.0-RC1"
const val dokka = "1.6.10"
const val kotlin = "1.6.20"
const val ktlint = "10.2.1"
const val ktlintGradle = "10.2.1"
const val pig = "0.6.1"
}

object Plugins {
const val detekt = "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:${Versions.detekt}"
const val dokka = "org.jetbrains.dokka:dokka-gradle-plugin:${Versions.dokka}"
const val kotlinGradle = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}"
const val ktlint = "org.jlleitschuh.gradle:ktlint-gradle:${Versions.ktlint}"
const val ktlintGradle = "org.jlleitschuh.gradle:ktlint-gradle:${Versions.ktlintGradle}"
const val pig = "org.partiql:pig-gradle-plugin:${Versions.pig}"
}

dependencies {
implementation(Plugins.detekt)
implementation(Plugins.dokka)
implementation(Plugins.kotlinGradle)
implementation(Plugins.ktlint)
implementation(Plugins.ktlintGradle)
implementation(Plugins.pig)
}

Expand Down
13 changes: 13 additions & 0 deletions buildSrc/src/main/kotlin/partiql.conventions.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,12 @@ dependencies {
testImplementation(Deps.kotlinTest)
testImplementation(Deps.kotlinTestJunit)
testImplementation(Deps.junitParams)
// Custom ktlint rules are added by adding to the `dependencies` block: https://github.com/JLLeitschuh/ktlint-gradle/tree/v10.2.0?tab=readme-ov-file#configuration
// Currently, we only run the rules when the `custom-ktlint-rules` property is set.
// Once we enable the custom rules to run by default, this conditional can be removed.
if (hasProperty("custom-ktlint-rules")) {
ktlintRuleset(project(":custom-ktlint-rules"))
}
}

java {
Expand Down Expand Up @@ -72,6 +78,13 @@ tasks.compileTestKotlin {
}

configure<KtlintExtension> {
version.set(Versions.ktlint)
// Currently set `ktlintCheck` to not fail on the custom rules.
// Once we enable the custom rules to run by default, this conditional can be removed.
if (hasProperty("custom-ktlint-rules")) {
ignoreFailures.set(true)
}
outputToConsole.set(true)
filter {
exclude { it.file.path.contains(generatedSrc) }
}
Expand Down
5 changes: 3 additions & 2 deletions buildSrc/src/main/kotlin/partiql.versions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ object Versions {
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"
const val ktlint = "0.42.1" // we're on an old version of ktlint. TODO upgrade https://github.com/partiql/partiql-lang-kotlin/issues/1418

// Testing
const val assertj = "3.11.0"
Expand Down Expand Up @@ -92,6 +92,7 @@ object Deps {
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}"
const val ktlint = "com.pinterest.ktlint:ktlint-core:${Versions.ktlint}"

// Testing
const val assertj = "org.assertj:assertj-core:${Versions.assertj}"
Expand All @@ -106,6 +107,7 @@ object Deps {
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}"
const val ktlintTest = "com.pinterest.ktlint:ktlint-test:${Versions.ktlint}"

// JMH Benchmarking
const val jmhCore = "org.openjdk.jmh:jmh-core:${Versions.jmhCore}"
Expand All @@ -125,7 +127,6 @@ object Plugins {
const val detekt = "io.gitlab.arturbosch.detekt"
const val dokka = "org.jetbrains.dokka"
const val jmh = "me.champeau.gradle.jmh"
const val ktlint = "org.jlleitschuh.gradle.ktlint"
const val library = "org.gradle.java-library"
const val testFixtures = "org.gradle.java-test-fixtures"
}
16 changes: 16 additions & 0 deletions custom-ktlint-rules/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
plugins {
id(Plugins.conventions)
`java-library`
}

dependencies {
implementation(Deps.ktlint)

testImplementation(Deps.assertj)
testImplementation(Deps.ktlintTest)
testImplementation(Deps.junitParams)
}

repositories {
mavenCentral()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package org.partiql.ktlint

import com.pinterest.ktlint.core.RuleSet
import com.pinterest.ktlint.core.RuleSetProvider
import org.partiql.ktlint.rule.TopLevelInternalRule
import org.partiql.ktlint.rule.TopLevelPublicRule

class CustomRuleSetProvider : RuleSetProvider {
override fun get(): RuleSet = RuleSet("custom-ktlint-rules", TopLevelInternalRule(), TopLevelPublicRule())
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package org.partiql.ktlint.rule

import com.pinterest.ktlint.core.Rule
import com.pinterest.ktlint.core.ast.ElementType
import com.pinterest.ktlint.core.ast.children
import org.jetbrains.kotlin.com.intellij.lang.ASTNode

public class TopLevelInternalRule : Rule("top-level-internal") {

override fun visit(
node: ASTNode,
autoCorrect: Boolean,
emit: (offset: Int, errorMessage: String, canBeAutoCorrected: Boolean) -> Unit
) {
if (node.elementType != ElementType.IDENTIFIER) {
return
}

// Focus on just functions and values
val parent = node.treeParent
if (parent.elementType != ElementType.FUN && parent.elementType != ElementType.PROPERTY) {
return
}

// Check grandparent of node is FILE; if so, is top-level declaration
if (parent.treeParent.elementType != ElementType.FILE) {
return
}
val modifiers = parent.findChildByType(ElementType.MODIFIER_LIST)?.children()
if (modifiers != null && modifiers.any { it.elementType == ElementType.INTERNAL_KEYWORD }) {
emit(
node.startOffset,
"Top-level internal declaration found: ${node.text}",
false
)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package org.partiql.ktlint.rule

import com.pinterest.ktlint.core.Rule
import com.pinterest.ktlint.core.ast.ElementType
import com.pinterest.ktlint.core.ast.children
import org.jetbrains.kotlin.com.intellij.lang.ASTNode

public class TopLevelPublicRule : Rule("top-level-public") {
override fun visit(
node: ASTNode,
autoCorrect: Boolean,
emit: (offset: Int, errorMessage: String, canBeAutoCorrected: Boolean) -> Unit
) {
if (node.elementType != ElementType.IDENTIFIER) {
return
}

// Focus on just functions and values
val parent = node.treeParent
if (parent.elementType != ElementType.FUN && parent.elementType != ElementType.PROPERTY) {
return
}

// Check grandparent of node is FILE; if so, is top-level declaration
val grandParent = parent.treeParent
if (grandParent.elementType != ElementType.FILE) {
return
}

val modifiers = parent.findChildByType(ElementType.MODIFIER_LIST)
if (modifiers != null && modifiers.isNotPublic()) {
return
}

val annotationEntry = grandParent.findChildByType(ElementType.FILE_ANNOTATION_LIST)?.findChildByType(ElementType.ANNOTATION_ENTRY)
if (annotationEntry == null || !annotationEntry.containsFileJvmName()) {
emit(
node.startOffset,
"Top-level public declaration found without `@file:JvmName` annotation: ${node.text}",
false
)
}
}

// returns true iff modifiers is not one of `PRIVATE_KEYWORD`, `INTERNAL_KEYWORD` or `PROTECTED_KEYWORD`
private fun ASTNode.isNotPublic(): Boolean {
val modifiers = this.children().map { it.elementType }
return modifiers.any { it == ElementType.PRIVATE_KEYWORD || it == ElementType.INTERNAL_KEYWORD || it == ElementType.PROTECTED_KEYWORD }
}

// returns true iff node is `@file:JvmName(<some name>)`
private fun ASTNode.containsFileJvmName(): Boolean {
val annotationTarget = this.findChildByType(ElementType.ANNOTATION_TARGET)
if (annotationTarget == null || annotationTarget.text.lowercase() != "file") {
return false
}
val constructorCallee = this.findChildByType(ElementType.CONSTRUCTOR_CALLEE)
if (constructorCallee == null || constructorCallee.text.lowercase() != "jvmname") {
return false
}
return true
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
org.partiql.ktlint.CustomRuleSetProvider
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package org.partiql.ktlint.rule

import com.pinterest.ktlint.core.LintError
import com.pinterest.ktlint.test.lint
import org.assertj.core.api.Assertions
import org.junit.jupiter.api.Test

class TopLevelInternalRuleTest {
@Test
fun `top-level internal`() {
val code =
"""
internal fun internalTopLevelFun() {} // ktlint error
internal val internalTopLevelVal = 123 // ktlint error
internal var internalTopLevelVar = 456 // ktlint error
// No errors for below (for this rule)
public fun publicTopLevelFun() {}
public val publicTopLevelVal = 123
public var publicTopLevelVar = 456
fun publicTopLevelFun2() {}
val publicTopLevelVal = 123
var publicTopLevelVar = 456
public class PublicClass {
internal fun internalFun() {}
internal val internalVal = 123
public fun publicFun() {}
public val publicVal = 123
}
""".trimIndent()
Assertions.assertThat(TopLevelInternalRule().lint(code)).containsExactly(
LintError(1, 14, "top-level-internal", "Top-level internal declaration found: internalTopLevelFun"),
LintError(3, 14, "top-level-internal", "Top-level internal declaration found: internalTopLevelVal"),
LintError(5, 14, "top-level-internal", "Top-level internal declaration found: internalTopLevelVar")
)
}
}
Loading

1 comment on commit 4851cac

@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: 4851cac Previous: d302a01 Ratio
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithInterruptible 260.46586520623606 us/op 261.493258034373 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithoutInterruptible 261.798680686609 us/op 241.2084166926159 us/op 1.09
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithInterruptible 235.7916374169028 us/op 227.36007166659132 us/op 1.04
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithoutInterruptible 233.44158266232998 us/op 244.99449473416226 us/op 0.95
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithInterruptible 177.08534788374482 us/op 180.58769416951182 us/op 0.98
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithoutInterruptible 167.63383180940772 us/op 168.06729448961678 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithInterruptible 13205074.2815 us/op 12863574.730999999 us/op 1.03
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithoutInterruptible 13384837.846099999 us/op 13335886.953650001 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithInterruptible 5310959.451550001 us/op 5362701.647600001 us/op 0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithoutInterruptible 4959206.431499999 us/op 4940980.10105 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithInterruptible 40.685005538560304 us/op 38.80722672584133 us/op 1.05
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithoutInterruptible 40.60634541983637 us/op 38.08432432540872 us/op 1.07
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithInterruptible 12889134.95975 us/op 12883192.612749998 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithoutInterruptible 13176184.59905 us/op 13342802.212849999 us/op 0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithInterruptible 5321930.492950001 us/op 4795774.96085 us/op 1.11
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithoutInterruptible 4884732.692999999 us/op 4845869.410149999 us/op 1.01
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithInterruptible 97250.16192772725 us/op 97695.20728636363 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithoutInterruptible 93359.16467272726 us/op 96346.72590954545 us/op 0.97
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler15 79.81769772923758 us/op 80.24610726735773 us/op 0.99
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler30 155.85707968790024 us/op 149.25471954593309 us/op 1.04
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator15 328646.9912124999 us/op 373989.78003333334 us/op 0.88
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30 739262.60185 us/op 737339.6823499998 us/op 1.00
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30WithData10 7222186.894749999 us/op 7362124.81045 us/op 0.98
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser15 135.14019865238026 us/op 136.9530404082406 us/op 0.99
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser30 258.10428653116065 us/op 254.46486626700525 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameCaseWhenThen 33.93865230485663 us/op 32.57515384971971 us/op 1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery 43.54342284175821 us/op 41.99914430006614 us/op 1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery01 234.94983553697617 us/op 231.9153727694808 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery02 415.51900435024606 us/op 407.3681728999459 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExceptUnionIntersectSixty 159.49569221423047 us/op 157.12053253739924 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExec20Expressions 48.60304786180554 us/op 48.48941570017135 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameFromLet 34.14806900427349 us/op 33.10585942318849 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPattern 33.04846935305635 us/op 31.76720933945212 us/op 1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPreFilters 58.661595759224426 us/op 57.340817620293 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGroupLimit 40.02301457887061 us/op 38.98979713701671 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameLongFromSourceOrderBy 48.12575161554836 us/op 47.984265666728845 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameManyJoins 50.29162096792281 us/op 49.90503795696753 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedAggregates 84.11554075325597 us/op 82.13287123207628 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedParen 13.724766162496223 us/op 13.315261810502111 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNamePivot 54.722047583734636 us/op 50.39155242376247 us/op 1.09
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery15OrsAndLikes 164.10597139425596 us/op 160.37683108003222 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery30Plus 86.02580988324257 us/op 83.58539105945235 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFunc 38.56764123864208 us/op 37.51027306193164 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFuncInProjection 44.427629508711554 us/op 42.48336084470419 us/op 1.05
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryList 59.06530322564832 us/op 58.849406737802624 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryNestedSelect 594.9441755579213 us/op 592.5306143330498 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuerySimple 12.453020326376082 us/op 11.89870696378583 us/op 1.05
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralJoins 17.227205630565805 us/op 16.53177553642063 us/op 1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralProjections 55.814963365101015 us/op 55.24372187121371 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralSelect 162.8875124125306 us/op 155.7877084474891 us/op 1.05
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSimpleInsert 23.613203094139777 us/op 22.856143583114857 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeJoins 17.03921008694519 us/op 16.80113075945951 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeProjections 23.1013788847767 us/op 22.77395911123944 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeSelect 40.02432966965623 us/op 40.141357733716696 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameTimeZone 19.868985408922168 us/op 19.027366639736968 us/op 1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery 194.89304554778272 us/op 203.3529415464327 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery01 771.1843171797199 us/op 752.5962438179106 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameCaseWhenThen 18.934477026214815 us/op 18.771564498302602 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery 190.3609015240625 us/op 196.18742694863425 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery01 87.22243460239797 us/op 84.70439324679589 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExceptUnionIntersectSixty 163.42836852143145 us/op 164.97381942407574 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExec20Expressions 46.322988688805296 us/op 47.76879191832886 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameFromLet 28.187579847022317 us/op 27.60853009908031 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPattern 30.671087806820452 us/op 29.74187380207392 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPreFilters 53.765109363514554 us/op 53.54636729939305 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGroupLimit 25.121971348852146 us/op 24.20755445172016 us/op 1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameLongFromSourceOrderBy 99.76591524398395 us/op 97.03414092258973 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameManyJoins 34.43144246461291 us/op 33.61519534337481 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedAggregates 72.83457069005411 us/op 71.23294240409727 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedParen 61.639048729331385 us/op 64.06375440108732 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNamePivot 50.504580174248076 us/op 49.239280900722584 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery15OrsAndLikes 135.39946652983372 us/op 134.12689513122035 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery30Plus 45.17479545966624 us/op 47.02433418995689 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFunc 96.95051935775648 us/op 98.27160365572094 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFuncInProjection 63.989961800111246 us/op 65.42623372091268 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryList 55.46076016305257 us/op 55.46157313280148 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryNestedSelect 104.83696937044571 us/op 102.9222039617616 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuerySimple 8.740701071785248 us/op 8.450774846085329 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralJoins 54.77544113741699 us/op 54.18290298799337 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralProjections 40.91647873338728 us/op 40.50002130476217 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralSelect 76.4182175660699 us/op 77.25274900465858 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSimpleInsert 14.970068482056513 us/op 14.914496294975057 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeJoins 14.748009887543253 us/op 14.832557319006597 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeProjections 13.036109190108766 us/op 12.778462869718926 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeSelect 24.756269407000936 us/op 24.539657938943282 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameTimeZone 6.037959470509685 us/op 5.979394639163392 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery 310.43768688966264 us/op 302.71772218811174 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery01 877.9719461117244 us/op 870.216141787 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLCompiler 7.4495965129999435 us/op 7.030972478011277 us/op 1.06
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLEvaluator 1.8595331513185982 us/op 1.778217624641 us/op 1.05
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLParser 7.6634856935082265 us/op 7.5302946019865304 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery1 7.046241879552677 us/op 7.1326776509352445 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery2 13.283647393807513 us/op 14.039533358684855 us/op 0.95
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery3 15.588361020772066 us/op 15.333985418769606 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery4 22.432109042750003 us/op 22.45722515988066 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery5 23.21458713892459 us/op 23.939129688841852 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery1 144873.7327589286 us/op 148561.11379375 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery10 14.809944962598923 us/op 15.50525218926544 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery11 2.4485143132045386 us/op 2.4174233012477213 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery2 246764.59803749993 us/op 242901.86295499996 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery3 241266.73406 us/op 244437.43277 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery4 309812.75276249996 us/op 306185.14731249993 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery5 304437.8454749999 us/op 299870.75235 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery6 358180.1099 us/op 364927.97114999994 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery7 29725.56451883626 us/op 29675.76382872634 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery8 2797.3983179509046 us/op 2815.282732441163 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery9 261.7938139426477 us/op 260.66881131659545 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery1 6.993254272017164 us/op 6.785584198513938 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery2 13.112653289538716 us/op 12.964796986008542 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery3 14.809646033718721 us/op 14.578311270356068 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery4 21.521101796640725 us/op 21.12534735518159 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery5 21.834711996715747 us/op 21.782168877283677 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery1 132049.72478750002 us/op 131071.15976874999 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery10 9.513694685702031 us/op 9.438648486563768 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery11 1.3603822442868774 us/op 1.363881529582056 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery2 195915.25148333336 us/op 194854.78114166667 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery3 205296.95474999998 us/op 199748.50258833333 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery4 250893.30130750005 us/op 244610.973 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery5 234108.83950000006 us/op 228755.75591 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery6 296095.291325 us/op 291829.45618750004 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery7 22792.838033229746 us/op 24239.863100624767 us/op 0.94
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery8 2151.8262775859394 us/op 2139.743436748416 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery9 197.96352934554562 us/op 198.16833916917423 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameCaseWhenThen 32.85812132753848 us/op 31.981916057347753 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery 42.40438130364202 us/op 41.830754348589686 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery01 240.8902117378776 us/op 236.2163394068171 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery02 410.1987756319951 us/op 403.84926200829494 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExceptUnionIntersectSixty 161.68249736024737 us/op 157.35887512755866 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExec20Expressions 45.03513825296411 us/op 43.9349087100706 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameFromLet 34.48624181690326 us/op 32.90407672449144 us/op 1.05
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPattern 31.578584447357095 us/op 30.85931387639069 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPreFilters 57.65413314148153 us/op 56.47471766838113 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGroupLimit 40.572771965095164 us/op 37.897559012872414 us/op 1.07
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameLongFromSourceOrderBy 48.665927236796314 us/op 47.56263174452967 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameManyJoins 48.06923695905524 us/op 47.31957880473598 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedAggregates 86.01246977274778 us/op 82.98355662415285 us/op 1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedParen 13.217749582939058 us/op 13.226360521599705 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNamePivot 50.6032604897306 us/op 50.3519550284709 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery15OrsAndLikes 157.70124140226864 us/op 154.98494072851915 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery30Plus 86.90911221348186 us/op 84.06834673083426 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFunc 38.877559207270686 us/op 37.58493608313345 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFuncInProjection 42.974916099958286 us/op 42.28583116218636 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryList 58.89792676729901 us/op 57.28403874334894 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryNestedSelect 592.4589955296627 us/op 583.4214970824524 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuerySimple 11.9436740951117 us/op 11.655437407430806 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralJoins 16.409840026095303 us/op 16.263013437509013 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralProjections 53.32515713328111 us/op 52.13534448328748 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralSelect 159.05343479192385 us/op 157.17110136628665 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSimpleInsert 22.84021237827067 us/op 21.998517829502404 us/op 1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeJoins 16.56504192126628 us/op 16.061777789540532 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeProjections 21.817300269998977 us/op 21.407711112848922 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeSelect 40.1340374796563 us/op 39.59515035550874 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameTimeZone 19.119472188900872 us/op 18.157038026572174 us/op 1.05
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery 195.38014487108933 us/op 191.90217311523833 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery01 773.4929686797452 us/op 748.1979457865523 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameCaseWhenThen 24.409968431264364 us/op 23.788810389647033 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery 249.37500981585475 us/op 241.96418186681575 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery01 124.28591338490878 us/op 120.7688502330378 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExceptUnionIntersectSixty 257.98976244559896 us/op 267.1156970138746 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExec20Expressions 62.698511271301484 us/op 63.009627063002576 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameFromLet 41.29446890587745 us/op 41.231012911124715 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPattern 47.83803376160819 us/op 43.698662447289415 us/op 1.09
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPreFilters 82.00502079189931 us/op 84.16643864808901 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGroupLimit 28.44690183261921 us/op 27.78476050611973 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameLongFromSourceOrderBy 114.94367771687253 us/op 119.13023658103165 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameManyJoins 43.793344023701295 us/op 44.65543277729965 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedAggregates 100.91348929679666 us/op 103.19297929903867 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedParen 68.10430987418182 us/op 67.1454082491828 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNamePivot 64.82505298683333 us/op 62.800151223334844 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery15OrsAndLikes 189.96864070259178 us/op 193.97630472271067 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery30Plus 60.00976770187812 us/op 61.81318844253112 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFunc 115.9868255449868 us/op 111.37571277822808 us/op 1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFuncInProjection 78.33805387119263 us/op 78.36438755926238 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryList 69.67848115744803 us/op 69.13688688294096 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryNestedSelect 137.01993682006307 us/op 133.16550457826537 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuerySimple 11.657355717552093 us/op 11.798150176038908 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralJoins 80.22798096277185 us/op 77.36958406916958 us/op 1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralProjections 62.155482225675414 us/op 59.75892175678432 us/op 1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralSelect 113.47240991082363 us/op 115.06661532421046 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSimpleInsert 21.875405147159924 us/op 22.13343307700855 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeJoins 20.00127090786138 us/op 20.46038912459031 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeProjections 18.47432309258672 us/op 19.041477253681673 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeSelect 35.70647911902533 us/op 35.43864609653037 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameTimeZone 7.528291829317728 us/op 7.539559303017697 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery 457.85407454539825 us/op 471.3664779090053 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery01 1207.8066277668217 us/op 1160.7251936288428 us/op 1.04

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

Please sign in to comment.