Skip to content

Commit

Permalink
Fix PlanCompiler output type for DISTINCT + ORDER BY (#1298)
Browse files Browse the repository at this point in the history
  • Loading branch information
alancai98 authored Dec 12, 2023
1 parent 55c7a2a commit 54990be
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 23 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,14 @@ Thank you to all who have contributed!
- **BREAKING** In the produced plan:
- The new plan is fully resolved and typed.
- Operators will be converted to function call.

- Changes the return type of `filter_distinct` to a list if input collection is list

### Deprecated

### Fixed
- Fixes the CLI hanging on invalid queries. See issue #1230.
- Fixes Timestamp Type parsing issue. Previously Timestamp Type would get parsed to a Time type.
- Fixes the physical plan compiler to return list when `DISTINCT` used with `ORDER BY`

### Removed
- **Breaking** Removed IR factory in favor of static top-level functions. Change `Ast.foo()`
Expand Down
8 changes: 4 additions & 4 deletions docs/wiki/documentation/Functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -477,20 +477,20 @@ EXTRACT(TIMEZONE_MINUTE FROM TIME WITH TIME ZONE '23:12:59-08:30') -- -30
### `FILTER_DISTINCT` -- since v0.7.0

Signature
: `FILTER_DISTINCT: Container -> Bag`
: `FILTER_DISTINCT: Container -> Bag|List`

Header
: `FILTER_DISTINCT(c)`

Purpose
: Returns a bag of distinct values contained within a bag, list, sexp, or struct. If the container is a struct,
the field names are not considered.
: Returns a bag or list of distinct values contained within a bag, list, sexp, or struct. If the container is a struct,
the field names are not considered. A list will be returned if and only if the input is a list.

Examples
:

```sql
FILTER_DISTINCT([0, 0, 1]) -- <<0, 1>>
FILTER_DISTINCT([0, 0, 1]) -- [0, 1]
FILTER_DISTINCT(<<0, 0, 1>>) -- <<0, 1>>
FILTER_DISTINCT(SEXP(0, 0, 1)) -- <<0, 1>>
FILTER_DISTINCT({'a': 0, 'b': 0, 'c': 1}) -- <<0, 1>>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,31 +110,33 @@ internal object ExprFunctionUtcNow : ExprFunction {
}

/**
* Returns a bag of distinct values contained within a bag, list, sexp, or struct.
* Returns a bag or list of distinct values contained within a bag, list, sexp, or struct.
* If the container is a struct, the field names are not considered.
*/
internal object ExprFunctionFilterDistinct : ExprFunction {

override val signature = FunctionSignature(
name = "filter_distinct",
requiredParameters = listOf(unionOf(StaticType.BAG, StaticType.LIST, StaticType.SEXP, StaticType.STRUCT)),
returnType = StaticType.BAG
returnType = unionOf(StaticType.BAG, StaticType.LIST)
)

override fun callWithRequired(session: EvaluationSession, required: List<ExprValue>): ExprValue {
val argument = required.first()
// We cannot use a [HashSet] here because [ExprValue] does not implement .equals() and .hashCode()
val encountered = TreeSet(DEFAULT_COMPARATOR)
return ExprValue.newBag(
sequence {
argument.asSequence().forEach {
if (!encountered.contains(it)) {
encountered.add(it.unnamedValue())
yield(it)
}
val seq = sequence {
argument.asSequence().forEach {
if (!encountered.contains(it)) {
encountered.add(it.unnamedValue())
yield(it)
}
}
)
}
return when (argument.type) {
ExprValueType.LIST -> ExprValue.newList(seq)
else -> ExprValue.newBag(seq)
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,36 @@ class FilterDistinctEvaluationTest : EvaluatorTestBase() {
override fun getParameters(): List<Any> = listOf(

// These three tests ensure we can accept lists, bags, s-expressions and structs
ExprFunctionTestCase("filter_distinct([0, 0, 1])", "$BAG_ANNOTATION::[0, 1]"), // list
ExprFunctionTestCase("filter_distinct(<<0, 0, 1>>)", "$BAG_ANNOTATION::[0, 1]"), // bag
ExprFunctionTestCase("filter_distinct(SEXP(0, 0, 1))", "$BAG_ANNOTATION::[0, 1]"), // s-exp
ExprFunctionTestCase("filter_distinct({'a': 0, 'b': 0, 'c': 1})", "$BAG_ANNOTATION::[0, 1]"), // struct
ExprFunctionTestCase(
"filter_distinct([0, 0, 1])",
"[0, 1]"
), // list
ExprFunctionTestCase(
"filter_distinct(<<0, 0, 1>>)",
"$BAG_ANNOTATION::[0, 1]"
), // bag
ExprFunctionTestCase(
"filter_distinct(SEXP(0, 0, 1))",
"$BAG_ANNOTATION::[0, 1]"
), // s-exp
ExprFunctionTestCase(
"filter_distinct({'a': 0, 'b': 0, 'c': 1})",
"$BAG_ANNOTATION::[0, 1]"
), // struct

// Some "smoke tests" to ensure the basic plumbing is working right.
ExprFunctionTestCase("filter_distinct(['foo', 'foo', 1, 1, `symbol`, `symbol`])", "$BAG_ANNOTATION::[\"foo\", 1, symbol]"),
ExprFunctionTestCase("filter_distinct([{ 'a': 1 }, { 'a': 1 }, { 'a': 1 }])", "$BAG_ANNOTATION::[{ 'a': 1 }]"),
ExprFunctionTestCase("filter_distinct([[1, 1], [1, 1], [2, 2]])", "$BAG_ANNOTATION::[[1,1], [2, 2]]"),
ExprFunctionTestCase(
"filter_distinct(['foo', 'foo', 1, 1, `symbol`, `symbol`])",
"[\"foo\", 1, symbol]"
),
ExprFunctionTestCase(
"filter_distinct([{ 'a': 1 }, { 'a': 1 }, { 'a': 1 }])",
"[{ 'a': 1 }]"
),
ExprFunctionTestCase(
"filter_distinct([[1, 1], [1, 1], [2, 2]])",
"[[1,1], [2, 2]]"
),
)
}

Expand Down Expand Up @@ -70,5 +91,9 @@ class FilterDistinctEvaluationTest : EvaluatorTestBase() {
}

@Test
fun invalidArityTest() = checkInvalidArity(funcName = "filter_distinct", maxArity = 1, minArity = 1)
fun invalidArityTest() = checkInvalidArity(
funcName = "filter_distinct",
maxArity = 1,
minArity = 1
)
}

1 comment on commit 54990be

@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: 54990be Previous: 55c7a2a Ratio
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithInterruptible 261.03064743174195 us/op 278.0282014132214 us/op 0.94
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithoutInterruptible 275.48751563546193 us/op 268.61383859131035 us/op 1.03
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithInterruptible 225.94829770356773 us/op 243.50822503684063 us/op 0.93
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithoutInterruptible 240.63551703693702 us/op 237.0772322130327 us/op 1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithInterruptible 182.86318557460032 us/op 178.30689591790454 us/op 1.03
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithoutInterruptible 176.93090598284797 us/op 187.86877684395355 us/op 0.94
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithInterruptible 12969043.492149998 us/op 13024256.602200001 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithoutInterruptible 13119455.745450001 us/op 13269381.550550003 us/op 0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithInterruptible 5190778.4639 us/op 5080140.39455 us/op 1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithoutInterruptible 5202636.51215 us/op 5065936.406900001 us/op 1.03
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithInterruptible 37.525770667937934 us/op 42.865697426073254 us/op 0.88
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithoutInterruptible 38.19617499637819 us/op 38.329535050174925 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithInterruptible 13304889.61465 us/op 13040116.836 us/op 1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithoutInterruptible 13111248.480250001 us/op 13107078.932999998 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithInterruptible 5117743.61895 us/op 4956420.8703499995 us/op 1.03
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithoutInterruptible 5054605.317650001 us/op 5039478.76935 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithInterruptible 95524.61290909091 us/op 100424.3117731818 us/op 0.95
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithoutInterruptible 92424.5647060606 us/op 98728.56631727272 us/op 0.94
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler15 80.8287313137019 us/op 81.56914482672316 us/op 0.99
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler30 157.43671702157081 us/op 157.7242375504309 us/op 1.00
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator15 370142.48603333335 us/op 376459.2421999999 us/op 0.98
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30 744863.75425 us/op 738751.022325 us/op 1.01
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30WithData10 7261316.067849999 us/op 7314489.943700001 us/op 0.99
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser15 128.61482067477897 us/op 135.1845864292573 us/op 0.95
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser30 243.6356762761569 us/op 249.18157320591996 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameCaseWhenThen 34.25724933890763 us/op 33.04918587455337 us/op 1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery 42.79977078033802 us/op 40.60443372032537 us/op 1.05
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery01 226.67127090974614 us/op 218.06097592364722 us/op 1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery02 375.81425058620385 us/op 379.83421519173334 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExceptUnionIntersectSixty 156.76908304869147 us/op 157.9325739099632 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExec20Expressions 47.4295463068631 us/op 46.91480394643732 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameFromLet 34.4307866889847 us/op 33.41982892824317 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPattern 31.80318547040933 us/op 32.51949231093373 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPreFilters 57.144094020435624 us/op 57.71738866193508 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGroupLimit 39.82184571656145 us/op 39.11177593277947 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameLongFromSourceOrderBy 48.0501779089327 us/op 47.50014974808055 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameManyJoins 50.30786493105545 us/op 49.89743632470585 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedAggregates 85.18909766502097 us/op 83.49700395050478 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedParen 13.445063191129112 us/op 13.705126037647641 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNamePivot 50.541940079773 us/op 52.68698138038244 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery15OrsAndLikes 154.61318032782464 us/op 158.56708801430776 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery30Plus 85.1708042658168 us/op 89.24226529123995 us/op 0.95
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFunc 38.22265716193417 us/op 38.48595423090818 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFuncInProjection 42.89277971650678 us/op 43.03400986138378 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryList 58.83817811876336 us/op 59.45917043057126 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryNestedSelect 552.8145880755895 us/op 564.6190916013891 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuerySimple 12.083300465219882 us/op 12.233907717981245 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralJoins 17.18967204612099 us/op 17.218440916117252 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralProjections 56.30532544138915 us/op 56.93514763756842 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralSelect 160.20250806334622 us/op 158.481439763316 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSimpleInsert 22.71088414296986 us/op 23.384519075931017 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeJoins 16.66394870534183 us/op 16.998154147650496 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeProjections 22.298324448505777 us/op 22.72983253341589 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeSelect 39.93703889521428 us/op 40.05462452212534 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameTimeZone 19.17133117266888 us/op 19.15295458685153 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery 190.6803603222846 us/op 190.38992132663756 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery01 751.0120085180347 us/op 770.2375822800949 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameCaseWhenThen 18.488534130432118 us/op 19.01702483670183 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery 195.05549179794818 us/op 193.7796289901804 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery01 85.63473251216628 us/op 85.06309738635714 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExceptUnionIntersectSixty 165.56183955574335 us/op 162.8304995984314 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExec20Expressions 46.3612337518606 us/op 45.75160414655974 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameFromLet 27.185862534145194 us/op 27.52902683506084 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPattern 30.094076863312296 us/op 31.8288894499454 us/op 0.95
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPreFilters 54.16616286319049 us/op 53.61959947052814 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGroupLimit 25.58698436932384 us/op 24.966275311406935 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameLongFromSourceOrderBy 99.15164590897099 us/op 99.55662358095032 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameManyJoins 33.78456357780524 us/op 33.57378766484554 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedAggregates 74.31572711490426 us/op 73.65125396040648 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedParen 65.23780464468268 us/op 60.785623499725205 us/op 1.07
org.partiql.jmh.benchmarks.ParserBenchmark.parseNamePivot 49.57346133580166 us/op 49.34823190283645 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery15OrsAndLikes 127.49636970880381 us/op 126.22088690050577 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery30Plus 46.58243038843004 us/op 46.3058446992272 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFunc 99.0013187164877 us/op 97.52889537216303 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFuncInProjection 64.48302628388413 us/op 66.85261376018788 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryList 55.850690669291694 us/op 55.8677437547115 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryNestedSelect 102.16437842217333 us/op 106.79564780504082 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuerySimple 8.527805480849324 us/op 8.739707028941645 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralJoins 55.11669996046801 us/op 54.51794943354837 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralProjections 40.55912186935081 us/op 40.92894555274408 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralSelect 74.77564326245296 us/op 78.30834074257493 us/op 0.95
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSimpleInsert 15.059624617419933 us/op 14.958349974449053 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeJoins 14.365750924659721 us/op 14.646517434460325 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeProjections 13.010045817747587 us/op 13.29631332497075 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeSelect 24.118863741973723 us/op 24.697698017478253 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameTimeZone 6.001088307115748 us/op 6.078013099063367 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery 301.81392812089615 us/op 301.2461865972793 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery01 820.0685182640207 us/op 850.4625211539917 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLCompiler 6.898234141881112 us/op 6.98766174901562 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLEvaluator 1.7938565376278404 us/op 1.808469893791645 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLParser 7.604841774085381 us/op 7.736048659403461 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameCaseWhenThen 32.146817012413564 us/op 32.21256300857114 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery 40.27395744867276 us/op 41.72614098738663 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery01 220.2308075288166 us/op 218.95939085728037 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery02 378.9952766483952 us/op 383.14078730440133 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExceptUnionIntersectSixty 154.01028612304043 us/op 157.0506758767614 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExec20Expressions 44.7156986507109 us/op 44.33100176041284 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameFromLet 32.66615630541577 us/op 33.0667895843789 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPattern 31.276590980281547 us/op 31.200539237505875 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPreFilters 56.7236096619845 us/op 55.90246824250685 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGroupLimit 38.66103320004847 us/op 39.02529760242711 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameLongFromSourceOrderBy 47.99578453579055 us/op 47.26708556037566 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameManyJoins 48.99244993070105 us/op 49.25465321974836 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedAggregates 84.98352551049136 us/op 84.56215015931932 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedParen 13.148955388296582 us/op 13.219878318845563 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNamePivot 51.50764036507828 us/op 51.85638985784717 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery15OrsAndLikes 157.06525689628103 us/op 156.29262108234832 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery30Plus 87.2111240139469 us/op 84.96100820317132 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFunc 37.98865527348885 us/op 38.23436410030418 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFuncInProjection 42.638145468114125 us/op 42.05799584870749 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryList 57.81719170673023 us/op 57.17893746652099 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryNestedSelect 553.4813087072306 us/op 540.6109869518921 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuerySimple 11.833827473606558 us/op 11.902264440121918 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralJoins 16.363743211181948 us/op 16.44981990671173 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralProjections 53.61106691682515 us/op 52.8485635897257 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralSelect 157.46743775753956 us/op 156.63606682320153 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSimpleInsert 21.81976775360682 us/op 22.492519685341172 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeJoins 16.11303020601943 us/op 16.30137422296456 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeProjections 21.480150705555552 us/op 22.269334089194448 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeSelect 40.66686492042029 us/op 39.68089605208145 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameTimeZone 18.39246289803358 us/op 18.484875591875607 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery 187.62136807593416 us/op 190.93612986238597 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery01 757.2028745254318 us/op 741.9700398536182 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameCaseWhenThen 24.045301458923696 us/op 24.180826968092727 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery 254.12499359846993 us/op 243.75404502710072 us/op 1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery01 121.03198364219466 us/op 118.73795271359363 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExceptUnionIntersectSixty 256.8747937300899 us/op 258.9973591525244 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExec20Expressions 64.08143301741171 us/op 63.08188197240442 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameFromLet 38.547193495487086 us/op 39.00337976033184 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPattern 48.07844684594839 us/op 47.890241237257676 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPreFilters 79.67600933840117 us/op 79.13052060853553 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGroupLimit 28.025987564997024 us/op 29.3888054657949 us/op 0.95
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameLongFromSourceOrderBy 121.83497831464824 us/op 116.06205093732868 us/op 1.05
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameManyJoins 41.626872533860585 us/op 41.550610482977014 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedAggregates 99.57429531158218 us/op 99.80320721201079 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedParen 66.43515247946438 us/op 62.249691985743695 us/op 1.07
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNamePivot 63.94628171777297 us/op 62.42592208682199 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery15OrsAndLikes 194.79044582699245 us/op 191.01462745018702 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery30Plus 58.074652973802856 us/op 58.02685941680308 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFunc 113.18879119796497 us/op 115.64244457726458 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFuncInProjection 78.44739123005222 us/op 78.79020421223653 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryList 70.35490718376 us/op 70.3874891738191 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryNestedSelect 142.0526460536609 us/op 138.7223947112779 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuerySimple 12.217017564268946 us/op 12.508824865275367 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralJoins 77.52740997508587 us/op 77.5495516399831 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralProjections 62.099729910112 us/op 61.70041155972352 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralSelect 111.0080119453929 us/op 115.28451677563487 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSimpleInsert 22.16016546419231 us/op 21.687365516915836 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeJoins 20.68920891838701 us/op 20.30310556281703 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeProjections 18.468891264813017 us/op 18.873105836834736 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeSelect 35.881472072109766 us/op 34.10982538693191 us/op 1.05
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameTimeZone 7.4872279209908275 us/op 7.431895690080433 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery 458.4321061548334 us/op 458.76000520446513 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery01 1134.077543933001 us/op 1145.4840292224947 us/op 0.99

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

Please sign in to comment.