-
Notifications
You must be signed in to change notification settings - Fork 62
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add custom ktlint rules to prevent Java interop issues (#1414)
- Loading branch information
Showing
13 changed files
with
333 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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() | ||
} |
10 changes: 10 additions & 0 deletions
10
custom-ktlint-rules/src/main/kotlin/org/partiql/ktlint/CustomRuleSetProvider.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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()) | ||
} |
38 changes: 38 additions & 0 deletions
38
custom-ktlint-rules/src/main/kotlin/org/partiql/ktlint/rule/TopLevelInternalRule.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
) | ||
} | ||
} | ||
} |
63 changes: 63 additions & 0 deletions
63
custom-ktlint-rules/src/main/kotlin/org/partiql/ktlint/rule/TopLevelPublicRule.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
} | ||
} |
1 change: 1 addition & 0 deletions
1
...lint-rules/src/main/resources/META-INF/services/com.pinterest.ktlint.core.RuleSetProvider
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
org.partiql.ktlint.CustomRuleSetProvider |
48 changes: 48 additions & 0 deletions
48
custom-ktlint-rules/src/test/kotlin/org/partiql/ktlint/rule/TopLevelInternalRuleTest.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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") | ||
) | ||
} | ||
} |
Oops, something went wrong.
4851cac
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JMH Benchmark
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithInterruptible
260.46586520623606
us/op261.493258034373
us/op1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithoutInterruptible
261.798680686609
us/op241.2084166926159
us/op1.09
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithInterruptible
235.7916374169028
us/op227.36007166659132
us/op1.04
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithoutInterruptible
233.44158266232998
us/op244.99449473416226
us/op0.95
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithInterruptible
177.08534788374482
us/op180.58769416951182
us/op0.98
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithoutInterruptible
167.63383180940772
us/op168.06729448961678
us/op1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithInterruptible
13205074.2815
us/op12863574.730999999
us/op1.03
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithoutInterruptible
13384837.846099999
us/op13335886.953650001
us/op1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithInterruptible
5310959.451550001
us/op5362701.647600001
us/op0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithoutInterruptible
4959206.431499999
us/op4940980.10105
us/op1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithInterruptible
40.685005538560304
us/op38.80722672584133
us/op1.05
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithoutInterruptible
40.60634541983637
us/op38.08432432540872
us/op1.07
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithInterruptible
12889134.95975
us/op12883192.612749998
us/op1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithoutInterruptible
13176184.59905
us/op13342802.212849999
us/op0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithInterruptible
5321930.492950001
us/op4795774.96085
us/op1.11
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithoutInterruptible
4884732.692999999
us/op4845869.410149999
us/op1.01
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithInterruptible
97250.16192772725
us/op97695.20728636363
us/op1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithoutInterruptible
93359.16467272726
us/op96346.72590954545
us/op0.97
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler15
79.81769772923758
us/op80.24610726735773
us/op0.99
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler30
155.85707968790024
us/op149.25471954593309
us/op1.04
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator15
328646.9912124999
us/op373989.78003333334
us/op0.88
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30
739262.60185
us/op737339.6823499998
us/op1.00
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30WithData10
7222186.894749999
us/op7362124.81045
us/op0.98
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser15
135.14019865238026
us/op136.9530404082406
us/op0.99
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser30
258.10428653116065
us/op254.46486626700525
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameCaseWhenThen
33.93865230485663
us/op32.57515384971971
us/op1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery
43.54342284175821
us/op41.99914430006614
us/op1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery01
234.94983553697617
us/op231.9153727694808
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery02
415.51900435024606
us/op407.3681728999459
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExceptUnionIntersectSixty
159.49569221423047
us/op157.12053253739924
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExec20Expressions
48.60304786180554
us/op48.48941570017135
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameFromLet
34.14806900427349
us/op33.10585942318849
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPattern
33.04846935305635
us/op31.76720933945212
us/op1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPreFilters
58.661595759224426
us/op57.340817620293
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGroupLimit
40.02301457887061
us/op38.98979713701671
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameLongFromSourceOrderBy
48.12575161554836
us/op47.984265666728845
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameManyJoins
50.29162096792281
us/op49.90503795696753
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedAggregates
84.11554075325597
us/op82.13287123207628
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedParen
13.724766162496223
us/op13.315261810502111
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNamePivot
54.722047583734636
us/op50.39155242376247
us/op1.09
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery15OrsAndLikes
164.10597139425596
us/op160.37683108003222
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery30Plus
86.02580988324257
us/op83.58539105945235
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFunc
38.56764123864208
us/op37.51027306193164
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFuncInProjection
44.427629508711554
us/op42.48336084470419
us/op1.05
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryList
59.06530322564832
us/op58.849406737802624
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryNestedSelect
594.9441755579213
us/op592.5306143330498
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuerySimple
12.453020326376082
us/op11.89870696378583
us/op1.05
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralJoins
17.227205630565805
us/op16.53177553642063
us/op1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralProjections
55.814963365101015
us/op55.24372187121371
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralSelect
162.8875124125306
us/op155.7877084474891
us/op1.05
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSimpleInsert
23.613203094139777
us/op22.856143583114857
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeJoins
17.03921008694519
us/op16.80113075945951
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeProjections
23.1013788847767
us/op22.77395911123944
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeSelect
40.02432966965623
us/op40.141357733716696
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameTimeZone
19.868985408922168
us/op19.027366639736968
us/op1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery
194.89304554778272
us/op203.3529415464327
us/op0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery01
771.1843171797199
us/op752.5962438179106
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameCaseWhenThen
18.934477026214815
us/op18.771564498302602
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery
190.3609015240625
us/op196.18742694863425
us/op0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery01
87.22243460239797
us/op84.70439324679589
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExceptUnionIntersectSixty
163.42836852143145
us/op164.97381942407574
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExec20Expressions
46.322988688805296
us/op47.76879191832886
us/op0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameFromLet
28.187579847022317
us/op27.60853009908031
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPattern
30.671087806820452
us/op29.74187380207392
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPreFilters
53.765109363514554
us/op53.54636729939305
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGroupLimit
25.121971348852146
us/op24.20755445172016
us/op1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameLongFromSourceOrderBy
99.76591524398395
us/op97.03414092258973
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameManyJoins
34.43144246461291
us/op33.61519534337481
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedAggregates
72.83457069005411
us/op71.23294240409727
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedParen
61.639048729331385
us/op64.06375440108732
us/op0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNamePivot
50.504580174248076
us/op49.239280900722584
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery15OrsAndLikes
135.39946652983372
us/op134.12689513122035
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery30Plus
45.17479545966624
us/op47.02433418995689
us/op0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFunc
96.95051935775648
us/op98.27160365572094
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFuncInProjection
63.989961800111246
us/op65.42623372091268
us/op0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryList
55.46076016305257
us/op55.46157313280148
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryNestedSelect
104.83696937044571
us/op102.9222039617616
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuerySimple
8.740701071785248
us/op8.450774846085329
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralJoins
54.77544113741699
us/op54.18290298799337
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralProjections
40.91647873338728
us/op40.50002130476217
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralSelect
76.4182175660699
us/op77.25274900465858
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSimpleInsert
14.970068482056513
us/op14.914496294975057
us/op1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeJoins
14.748009887543253
us/op14.832557319006597
us/op0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeProjections
13.036109190108766
us/op12.778462869718926
us/op1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeSelect
24.756269407000936
us/op24.539657938943282
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameTimeZone
6.037959470509685
us/op5.979394639163392
us/op1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery
310.43768688966264
us/op302.71772218811174
us/op1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery01
877.9719461117244
us/op870.216141787
us/op1.01
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLCompiler
7.4495965129999435
us/op7.030972478011277
us/op1.06
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLEvaluator
1.8595331513185982
us/op1.778217624641
us/op1.05
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLParser
7.6634856935082265
us/op7.5302946019865304
us/op1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery1
7.046241879552677
us/op7.1326776509352445
us/op0.99
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery2
13.283647393807513
us/op14.039533358684855
us/op0.95
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery3
15.588361020772066
us/op15.333985418769606
us/op1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery4
22.432109042750003
us/op22.45722515988066
us/op1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery5
23.21458713892459
us/op23.939129688841852
us/op0.97
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery1
144873.7327589286
us/op148561.11379375
us/op0.98
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery10
14.809944962598923
us/op15.50525218926544
us/op0.96
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery11
2.4485143132045386
us/op2.4174233012477213
us/op1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery2
246764.59803749993
us/op242901.86295499996
us/op1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery3
241266.73406
us/op244437.43277
us/op0.99
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery4
309812.75276249996
us/op306185.14731249993
us/op1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery5
304437.8454749999
us/op299870.75235
us/op1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery6
358180.1099
us/op364927.97114999994
us/op0.98
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery7
29725.56451883626
us/op29675.76382872634
us/op1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery8
2797.3983179509046
us/op2815.282732441163
us/op0.99
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery9
261.7938139426477
us/op260.66881131659545
us/op1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery1
6.993254272017164
us/op6.785584198513938
us/op1.03
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery2
13.112653289538716
us/op12.964796986008542
us/op1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery3
14.809646033718721
us/op14.578311270356068
us/op1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery4
21.521101796640725
us/op21.12534735518159
us/op1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery5
21.834711996715747
us/op21.782168877283677
us/op1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery1
132049.72478750002
us/op131071.15976874999
us/op1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery10
9.513694685702031
us/op9.438648486563768
us/op1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery11
1.3603822442868774
us/op1.363881529582056
us/op1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery2
195915.25148333336
us/op194854.78114166667
us/op1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery3
205296.95474999998
us/op199748.50258833333
us/op1.03
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery4
250893.30130750005
us/op244610.973
us/op1.03
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery5
234108.83950000006
us/op228755.75591
us/op1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery6
296095.291325
us/op291829.45618750004
us/op1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery7
22792.838033229746
us/op24239.863100624767
us/op0.94
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery8
2151.8262775859394
us/op2139.743436748416
us/op1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery9
197.96352934554562
us/op198.16833916917423
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameCaseWhenThen
32.85812132753848
us/op31.981916057347753
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery
42.40438130364202
us/op41.830754348589686
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery01
240.8902117378776
us/op236.2163394068171
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery02
410.1987756319951
us/op403.84926200829494
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExceptUnionIntersectSixty
161.68249736024737
us/op157.35887512755866
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExec20Expressions
45.03513825296411
us/op43.9349087100706
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameFromLet
34.48624181690326
us/op32.90407672449144
us/op1.05
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPattern
31.578584447357095
us/op30.85931387639069
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPreFilters
57.65413314148153
us/op56.47471766838113
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGroupLimit
40.572771965095164
us/op37.897559012872414
us/op1.07
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameLongFromSourceOrderBy
48.665927236796314
us/op47.56263174452967
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameManyJoins
48.06923695905524
us/op47.31957880473598
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedAggregates
86.01246977274778
us/op82.98355662415285
us/op1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedParen
13.217749582939058
us/op13.226360521599705
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNamePivot
50.6032604897306
us/op50.3519550284709
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery15OrsAndLikes
157.70124140226864
us/op154.98494072851915
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery30Plus
86.90911221348186
us/op84.06834673083426
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFunc
38.877559207270686
us/op37.58493608313345
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFuncInProjection
42.974916099958286
us/op42.28583116218636
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryList
58.89792676729901
us/op57.28403874334894
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryNestedSelect
592.4589955296627
us/op583.4214970824524
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuerySimple
11.9436740951117
us/op11.655437407430806
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralJoins
16.409840026095303
us/op16.263013437509013
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralProjections
53.32515713328111
us/op52.13534448328748
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralSelect
159.05343479192385
us/op157.17110136628665
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSimpleInsert
22.84021237827067
us/op21.998517829502404
us/op1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeJoins
16.56504192126628
us/op16.061777789540532
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeProjections
21.817300269998977
us/op21.407711112848922
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeSelect
40.1340374796563
us/op39.59515035550874
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameTimeZone
19.119472188900872
us/op18.157038026572174
us/op1.05
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery
195.38014487108933
us/op191.90217311523833
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery01
773.4929686797452
us/op748.1979457865523
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameCaseWhenThen
24.409968431264364
us/op23.788810389647033
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery
249.37500981585475
us/op241.96418186681575
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery01
124.28591338490878
us/op120.7688502330378
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExceptUnionIntersectSixty
257.98976244559896
us/op267.1156970138746
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExec20Expressions
62.698511271301484
us/op63.009627063002576
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameFromLet
41.29446890587745
us/op41.231012911124715
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPattern
47.83803376160819
us/op43.698662447289415
us/op1.09
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPreFilters
82.00502079189931
us/op84.16643864808901
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGroupLimit
28.44690183261921
us/op27.78476050611973
us/op1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameLongFromSourceOrderBy
114.94367771687253
us/op119.13023658103165
us/op0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameManyJoins
43.793344023701295
us/op44.65543277729965
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedAggregates
100.91348929679666
us/op103.19297929903867
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedParen
68.10430987418182
us/op67.1454082491828
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNamePivot
64.82505298683333
us/op62.800151223334844
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery15OrsAndLikes
189.96864070259178
us/op193.97630472271067
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery30Plus
60.00976770187812
us/op61.81318844253112
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFunc
115.9868255449868
us/op111.37571277822808
us/op1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFuncInProjection
78.33805387119263
us/op78.36438755926238
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryList
69.67848115744803
us/op69.13688688294096
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryNestedSelect
137.01993682006307
us/op133.16550457826537
us/op1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuerySimple
11.657355717552093
us/op11.798150176038908
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralJoins
80.22798096277185
us/op77.36958406916958
us/op1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralProjections
62.155482225675414
us/op59.75892175678432
us/op1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralSelect
113.47240991082363
us/op115.06661532421046
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSimpleInsert
21.875405147159924
us/op22.13343307700855
us/op0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeJoins
20.00127090786138
us/op20.46038912459031
us/op0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeProjections
18.47432309258672
us/op19.041477253681673
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeSelect
35.70647911902533
us/op35.43864609653037
us/op1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameTimeZone
7.528291829317728
us/op7.539559303017697
us/op1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery
457.85407454539825
us/op471.3664779090053
us/op0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery01
1207.8066277668217
us/op1160.7251936288428
us/op1.04
This comment was automatically generated by workflow using github-action-benchmark.