Skip to content

Commit

Permalink
Add implementation of date, time, and timestamp values for `PartiQLVa…
Browse files Browse the repository at this point in the history
…lueTextWriter` (#1492)
  • Loading branch information
alancai98 authored Jun 25, 2024
1 parent 68e4849 commit 05a77c2
Show file tree
Hide file tree
Showing 4 changed files with 150 additions and 4 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ Thank you to all who have contributed!
## [Unreleased]

### Added
- Adds `PartiQLValueTextWriter` implementation of date, time, and timestamp values

### Changed
- **Behavioral change**: The planner now does NOT support the NullType and MissingType variants of StaticType. The logic
Expand Down
15 changes: 15 additions & 0 deletions partiql-ast/src/test/kotlin/org/partiql/ast/sql/SqlDialectTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ import org.partiql.ast.builder.ast
import org.partiql.ast.exprLit
import org.partiql.value.PartiQLValueExperimental
import org.partiql.value.boolValue
import org.partiql.value.dateValue
import org.partiql.value.datetime.DateTimeValue
import org.partiql.value.datetime.TimeZone
import org.partiql.value.decimalValue
import org.partiql.value.float32Value
import org.partiql.value.float64Value
Expand All @@ -39,6 +42,8 @@ import org.partiql.value.missingValue
import org.partiql.value.nullValue
import org.partiql.value.stringValue
import org.partiql.value.symbolValue
import org.partiql.value.timeValue
import org.partiql.value.timestampValue
import java.math.BigDecimal
import java.math.BigInteger
import kotlin.test.assertFails
Expand Down Expand Up @@ -406,6 +411,16 @@ class SqlDialectTest {
expect("""hello""") {
exprLit(symbolValue("hello"))
},
expect("DATE '0001-02-03'") {
exprLit(dateValue(DateTimeValue.date(1, 2, 3)))
},
expect("TIME '01:02:03.456-00:30'") {
exprLit(timeValue(DateTimeValue.time(1, 2, BigDecimal.valueOf(3.456), TimeZone.UtcOffset.of(-30))))
},
expect("TIMESTAMP '0001-02-03 04:05:06.78-00:30'") {
exprLit(timestampValue(DateTimeValue.timestamp(1, 2, 3, 4, 5, BigDecimal.valueOf(6.78), TimeZone.UtcOffset.of(-30))))
},

// expect("""{{ '''Hello''' '''World''' }}""") {
// exprLit(clobValue("HelloWorld".toByteArray()))
// },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import org.partiql.value.BagValue
import org.partiql.value.BoolValue
import org.partiql.value.CharValue
import org.partiql.value.CollectionValue
import org.partiql.value.DateValue
import org.partiql.value.DecimalValue
import org.partiql.value.Float32Value
import org.partiql.value.Float64Value
Expand All @@ -35,9 +36,17 @@ import org.partiql.value.SexpValue
import org.partiql.value.StringValue
import org.partiql.value.StructValue
import org.partiql.value.SymbolValue
import org.partiql.value.TimeValue
import org.partiql.value.TimestampValue
import org.partiql.value.datetime.Date
import org.partiql.value.datetime.Time
import org.partiql.value.datetime.TimeZone
import org.partiql.value.datetime.Timestamp
import org.partiql.value.util.PartiQLValueBaseVisitor
import java.io.OutputStream
import java.io.PrintStream
import java.math.BigDecimal
import kotlin.math.abs

/**
* [PartiQLValueWriter] which outputs PartiQL text.
Expand Down Expand Up @@ -192,6 +201,74 @@ public class PartiQLValueTextWriter(
}
}

override fun visitDate(v: DateValue, format: Format?) = v.toString(format) {
when (val value = v.value) {
null -> "null" // null.date
else -> sqlString(value)
}
}

private fun padZeros(v: Int, totalDigits: Int): String = String.format("%0${totalDigits}d", v)

private fun sqlString(d: Date): String {
val yyyy = padZeros(d.year, 4)
val mm = padZeros(d.month, 2)
val dd = padZeros(d.day, 2)
return "DATE '$yyyy-$mm-$dd'"
}

override fun visitTime(v: TimeValue, format: Format?) = v.toString(format) {
when (val value = v.value) {
null -> "null" // null.time
else -> sqlString(value)
}
}

private fun sqlString(tz: TimeZone?): String {
return when (tz) {
null -> ""
is TimeZone.UnknownTimeZone -> "-00:00"
is TimeZone.UtcOffset -> {
val sign = if (tz.totalOffsetMinutes < 0) {
"-"
} else {
"+"
}
val hh = padZeros(abs(tz.tzHour), 2)
val mm = padZeros(abs(tz.tzMinute), 2)
"$sign$hh:$mm"
}
}
}

private fun sqlString(t: Time): String {
val hh = padZeros(t.hour, 2)
val mm = padZeros(t.minute, 2)
val ss = padZeros(t.decimalSecond.toInt(), 2)
val frac = t.decimalSecond.remainder(BigDecimal.ONE).toString().substring(1) // drop leading 0
val timeZone = sqlString(t.timeZone)
return "TIME '$hh:$mm:$ss$frac$timeZone'"
}

override fun visitTimestamp(v: TimestampValue, format: Format?) = v.toString(format) {
when (val value = v.value) {
null -> "null" // null.timestamp
else -> sqlString(value)
}
}

private fun sqlString(t: Timestamp): String {
val yyyy = padZeros(t.year, 4)
val mon = padZeros(t.month, 2)
val dd = padZeros(t.day, 2)
val hh = padZeros(t.hour, 2)
val min = padZeros(t.minute, 2)
val ss = padZeros(t.decimalSecond.toInt(), 2)
val frac = t.decimalSecond.remainder(BigDecimal.ONE).toString().substring(1) // drop leading 0
val timeZone = sqlString(t.timeZone)
return "TIMESTAMP '$yyyy-$mon-$dd $hh:$min:$ss$frac$timeZone'"
}

override fun visitBag(v: BagValue<*>, format: Format?) = collection(v, format, "<<" to ">>")

override fun visitList(v: ListValue<*>, format: Format?) = collection(v, format, "[" to "]")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ import org.partiql.value.PartiQLValueExperimental
import org.partiql.value.bagValue
import org.partiql.value.boolValue
import org.partiql.value.charValue
import org.partiql.value.dateValue
import org.partiql.value.datetime.DateTimeValue
import org.partiql.value.datetime.TimeZone
import org.partiql.value.decimalValue
import org.partiql.value.float32Value
import org.partiql.value.float64Value
Expand All @@ -28,6 +31,8 @@ import org.partiql.value.sexpValue
import org.partiql.value.stringValue
import org.partiql.value.structValue
import org.partiql.value.symbolValue
import org.partiql.value.timeValue
import org.partiql.value.timestampValue
import java.io.ByteArrayOutputStream
import java.io.PrintStream
import java.math.BigDecimal
Expand All @@ -37,7 +42,6 @@ import java.math.BigInteger
* Basic text writing test.
*
* TODOs
* - Dates and times
* - String/Symbol escapes
*/
class PartiQLValueTextWriterTest {
Expand Down Expand Up @@ -173,13 +177,62 @@ class PartiQLValueTextWriterTest {
value = symbolValue("f.x"),
expected = "f.x",
),
case(
value = dateValue(DateTimeValue.date(1, 2, 3)),
expected = "DATE '0001-02-03'",
),
case(
value = dateValue(DateTimeValue.date(2020, 2, 3)),
expected = "DATE '2020-02-03'",
),
case(
value = timeValue(DateTimeValue.time(1, 2, 3)),
expected = "TIME '01:02:03'",
),
case(
value = timeValue(DateTimeValue.time(1, 2, BigDecimal.valueOf(3.456))),
expected = "TIME '01:02:03.456'",
),
case(
value = timeValue(DateTimeValue.time(1, 2, BigDecimal.valueOf(3.456), TimeZone.UnknownTimeZone)),
expected = "TIME '01:02:03.456-00:00'",
),
case(
value = timeValue(DateTimeValue.time(1, 2, BigDecimal.valueOf(3.456), TimeZone.UtcOffset.of(0))),
expected = "TIME '01:02:03.456+00:00'",
),
case(
value = timeValue(DateTimeValue.time(1, 2, BigDecimal.valueOf(3.456), TimeZone.UtcOffset.of(+30))),
expected = "TIME '01:02:03.456+00:30'",
),
case(
value = timeValue(DateTimeValue.time(1, 2, BigDecimal.valueOf(3.456), TimeZone.UtcOffset.of(-30))),
expected = "TIME '01:02:03.456-00:30'",
),
case(
value = timestampValue(DateTimeValue.timestamp(1, 2, 3, 4, 5, BigDecimal.valueOf(6.78))),
expected = "TIMESTAMP '0001-02-03 04:05:06.78'",
),
case(
value = timestampValue(DateTimeValue.timestamp(1, 2, 3, 4, 5, BigDecimal.valueOf(6.78), TimeZone.UnknownTimeZone)),
expected = "TIMESTAMP '0001-02-03 04:05:06.78-00:00'",
),
case(
value = timestampValue(DateTimeValue.timestamp(1, 2, 3, 4, 5, BigDecimal.valueOf(6.78), TimeZone.UtcOffset.of(0))),
expected = "TIMESTAMP '0001-02-03 04:05:06.78+00:00'",
),
case(
value = timestampValue(DateTimeValue.timestamp(1, 2, 3, 4, 5, BigDecimal.valueOf(6.78), TimeZone.UtcOffset.of(+30))),
expected = "TIMESTAMP '0001-02-03 04:05:06.78+00:30'",
),
case(
value = timestampValue(DateTimeValue.timestamp(1, 2, 3, 4, 5, BigDecimal.valueOf(6.78), TimeZone.UtcOffset.of(-30))),
expected = "TIMESTAMP '0001-02-03 04:05:06.78-00:30'",
),
// TODO CLOB
// TODO BINARY
// TODO BYTE
// TODO BLOB
// TODO DATE
// TODO TIME
// TODO TIMESTAMP
// TODO INTERVAL
)

Expand Down

1 comment on commit 05a77c2

@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: 05a77c2 Previous: 68e4849 Ratio
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithInterruptible 275.8155357550041 us/op 257.8974125452368 us/op 1.07
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithoutInterruptible 263.29612036282685 us/op 251.0701102346652 us/op 1.05
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithInterruptible 254.36494169354302 us/op 255.48091148168442 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithoutInterruptible 232.7997658435398 us/op 239.34610500971226 us/op 0.97
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithInterruptible 172.22115612272563 us/op 166.82414769026406 us/op 1.03
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithoutInterruptible 182.16564614153503 us/op 173.27375398620114 us/op 1.05
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithInterruptible 12935272.886750001 us/op 13029996.589399999 us/op 0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithoutInterruptible 12827696.31785 us/op 12899076.14375 us/op 0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithInterruptible 4960802.012150001 us/op 5025000.17525 us/op 0.99
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithoutInterruptible 5179106.10485 us/op 4866577.0999 us/op 1.06
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithInterruptible 38.99920117803412 us/op 38.19000970361697 us/op 1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithoutInterruptible 40.231770762022556 us/op 38.158985395699915 us/op 1.05
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithInterruptible 13023210.6189 us/op 12469916.3628 us/op 1.04
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithoutInterruptible 12795775.30785 us/op 13060472.999999998 us/op 0.98
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithInterruptible 5378674.75305 us/op 5026179.50655 us/op 1.07
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithoutInterruptible 5157641.716050001 us/op 4998188.968499999 us/op 1.03
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithInterruptible 94373.96090909092 us/op 96408.64270590908 us/op 0.98
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithoutInterruptible 94843.03852977273 us/op 98287.74398181817 us/op 0.96
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler15 78.61140433342632 us/op 79.7453863309913 us/op 0.99
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler30 175.71384975535776 us/op 173.60971892255594 us/op 1.01
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator15 377620.92665 us/op 370446.47405 us/op 1.02
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30 738561.127625 us/op 730689.1270750001 us/op 1.01
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30WithData10 7336789.208699998 us/op 7290626.9684000015 us/op 1.01
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser15 134.1867340223633 us/op 134.776685776208 us/op 1.00
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser30 250.45754887976977 us/op 253.2319082906891 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameCaseWhenThen 34.18423091169742 us/op 33.492411531041256 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery 43.75414799255849 us/op 43.77866386332891 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery01 241.4155467521015 us/op 238.94213627724804 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery02 421.36647303645833 us/op 419.34022731452023 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExceptUnionIntersectSixty 160.69741063442427 us/op 158.28036372888454 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExec20Expressions 46.134151134716 us/op 45.948826439423364 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameFromLet 34.188709047505895 us/op 34.43355059511316 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPattern 32.36014704711628 us/op 32.03364201810017 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPreFilters 58.3958810997215 us/op 57.51563183732209 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGroupLimit 40.959085078546565 us/op 40.089507154781984 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameLongFromSourceOrderBy 48.15855547461011 us/op 48.285994230415575 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameManyJoins 49.83217735621938 us/op 50.23778495558878 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedAggregates 84.8676214715545 us/op 87.19905008592919 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedParen 13.554883458502527 us/op 13.598169772542116 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNamePivot 53.47799944394793 us/op 52.31240331450783 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery15OrsAndLikes 162.11092642061604 us/op 153.51528619260992 us/op 1.06
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery30Plus 85.23580876871623 us/op 87.36664556215094 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFunc 38.964539973254 us/op 38.56045198859584 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFuncInProjection 43.63188571084149 us/op 43.6974313744946 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryList 59.481264317420354 us/op 59.207581947800676 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryNestedSelect 590.2087088879164 us/op 577.7724230600495 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuerySimple 12.179502517224012 us/op 12.116473239236354 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralJoins 16.742312404912077 us/op 16.98643962540773 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralProjections 56.08064869167456 us/op 55.21127555675171 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralSelect 163.47765104984632 us/op 159.47804653773218 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSimpleInsert 23.080887738197443 us/op 23.31018062016696 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeJoins 16.663088753959908 us/op 16.810080541215996 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeProjections 23.155142986618902 us/op 22.646853442851416 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeSelect 40.60263050172692 us/op 40.9762331920393 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameTimeZone 19.14528020926105 us/op 19.709073249359058 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery 194.76947140507994 us/op 191.88029890583113 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery01 746.6816116817804 us/op 756.0189891799943 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameCaseWhenThen 18.414357062169024 us/op 18.627140449510662 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery 196.9334595249886 us/op 178.03430219752119 us/op 1.11
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery01 85.33603368410327 us/op 86.48688621441704 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExceptUnionIntersectSixty 168.87190564514842 us/op 163.65614765341402 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExec20Expressions 46.69792745072279 us/op 46.05835358153318 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameFromLet 28.47398852835469 us/op 28.708221023710525 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPattern 29.969015683167004 us/op 29.34788477628674 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPreFilters 53.85604922609163 us/op 55.39684045112176 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGroupLimit 25.969695102190503 us/op 25.2494026599566 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameLongFromSourceOrderBy 99.74781150550706 us/op 97.38253071948864 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameManyJoins 34.22459494418679 us/op 33.02172890483183 us/op 1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedAggregates 71.80951162600076 us/op 71.3498017950845 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedParen 62.332037315973935 us/op 62.35521442429594 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNamePivot 48.07152138008751 us/op 49.05030462355413 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery15OrsAndLikes 133.2049781795203 us/op 130.00571818779966 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery30Plus 43.9369540958712 us/op 46.450827577689374 us/op 0.95
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFunc 99.59779968669487 us/op 98.01865771834089 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFuncInProjection 64.21892997143219 us/op 62.84444472388403 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryList 56.35009024797639 us/op 54.99423807248284 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryNestedSelect 104.182550849572 us/op 101.74286868014708 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuerySimple 8.624454156415096 us/op 8.445124843255694 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralJoins 53.10479283694171 us/op 52.535476827182116 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralProjections 40.51460418022429 us/op 39.46908821735596 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralSelect 74.04115546895325 us/op 75.01947509649912 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSimpleInsert 14.978186222209882 us/op 14.902525594261476 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeJoins 14.489000082179794 us/op 14.915646205681412 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeProjections 13.082364153033078 us/op 12.639737848422646 us/op 1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeSelect 23.857274863931117 us/op 25.4691288576979 us/op 0.94
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameTimeZone 5.911799717313948 us/op 6.245258605497957 us/op 0.95
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery 305.1571257245381 us/op 295.2439026282326 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery01 858.1503949075357 us/op 866.7521119944504 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLCompiler 6.8080904850377575 us/op 7.2023720447588655 us/op 0.95
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLEvaluator 1.8003817411505227 us/op 1.797755731335506 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLParser 7.791328239000262 us/op 7.921172886600464 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery1 7.0663989071263815 us/op 7.069200292534259 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery2 13.755059493279944 us/op 13.617004473558646 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery3 16.060147969378487 us/op 15.46713863296813 us/op 1.04
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery4 23.13387316395769 us/op 23.249759952334944 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testCompileQuery5 23.983744841134524 us/op 23.84260014668395 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery1 146547.5097714286 us/op 142072.73888482142 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery10 15.443623101823812 us/op 15.570197433296709 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery11 2.4938065038631505 us/op 2.4417614480608147 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery2 240474.78983999998 us/op 240261.75810250003 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery3 244672.5671225 us/op 239380.65272999997 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery4 314602.57779999997 us/op 304028.88673749997 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery5 304027.7221749999 us/op 303570.7971 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery6 369383.4243833333 us/op 364161.1131999999 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery7 33553.2957261828 us/op 29043.774332462657 us/op 1.16
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery8 2806.072397097068 us/op 2821.98357345274 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineAsyncBenchmark.testEvalQuery9 266.56547182870156 us/op 263.67038883700604 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery1 7.095614406126964 us/op 7.107980524739588 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery2 12.852934965263694 us/op 13.429449561377703 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery3 14.629646326006503 us/op 14.439136339705602 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery4 20.668382674449308 us/op 20.68721416555983 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testCompileQuery5 21.84060296157535 us/op 21.897642757394205 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery1 130572.48032500004 us/op 126923.53808055558 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery10 9.740609264708885 us/op 9.778257542334758 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery11 1.3861031172659843 us/op 1.390850728733748 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery2 190840.51562499997 us/op 190615.37621666666 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery3 189776.56714 us/op 190733.76248333332 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery4 249652.79965500004 us/op 255184.58992500007 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery5 235313.51629 us/op 226827.92770000003 us/op 1.04
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery6 300197.3777249999 us/op 294582.37076250004 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery7 26954.583504032315 us/op 22331.228623155468 us/op 1.21
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery8 2136.600580810733 us/op 2136.919632381513 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLCompilerPipelineBenchmark.testEvalQuery9 203.70580437332484 us/op 203.11406080005025 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameCaseWhenThen 32.42513842711554 us/op 32.42710053358756 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery 42.046694803554495 us/op 42.510348617240176 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery01 238.52540001591893 us/op 232.6618304040754 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery02 411.7762700900598 us/op 404.02554930121505 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExceptUnionIntersectSixty 156.56562303040218 us/op 156.12605719592867 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExec20Expressions 44.410424976956676 us/op 45.023784004120856 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameFromLet 33.79940734319918 us/op 33.705742715689745 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPattern 31.515468833044423 us/op 30.99787182949736 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPreFilters 57.27762881065014 us/op 56.262215924700186 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGroupLimit 40.4212505302671 us/op 39.62856853197433 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameLongFromSourceOrderBy 47.8202584009343 us/op 47.7363867433176 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameManyJoins 50.80495170355109 us/op 49.88338656653993 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedAggregates 84.12994505346363 us/op 84.10956990726291 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedParen 13.177426384481555 us/op 13.02391669492658 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNamePivot 51.2671187509639 us/op 50.734407953903585 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery15OrsAndLikes 160.56931190775268 us/op 166.04942744240756 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery30Plus 85.91642211840053 us/op 88.29855904675206 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFunc 38.59592316109892 us/op 39.28741007055941 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFuncInProjection 42.30433628494886 us/op 42.64240594491106 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryList 58.93932032877966 us/op 58.96802424001421 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryNestedSelect 585.1286867514858 us/op 574.4732352534241 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuerySimple 11.808907990176376 us/op 11.77536015214094 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralJoins 16.54548380355911 us/op 16.70584312811462 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralProjections 54.988088493958834 us/op 53.12596156062832 us/op 1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralSelect 158.4962174037808 us/op 160.49299842724935 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSimpleInsert 22.039889278484587 us/op 22.35920425388978 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeJoins 16.41627803412759 us/op 16.106483788291136 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeProjections 21.87062954898504 us/op 21.789055559436015 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeSelect 40.364949158671955 us/op 40.58636064630325 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameTimeZone 18.764452894915756 us/op 18.924861152700124 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery 195.31474455736395 us/op 191.42955682652516 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery01 780.163796583245 us/op 767.4974820090731 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameCaseWhenThen 23.258464429445855 us/op 24.143276506629313 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery 246.03351758704366 us/op 253.12044286766863 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery01 119.66245621569041 us/op 119.49505165484263 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExceptUnionIntersectSixty 263.26811356376714 us/op 262.8300646124544 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExec20Expressions 63.19853164337222 us/op 65.62897674678408 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameFromLet 40.32744848571073 us/op 40.72736005207578 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPattern 44.31968222568001 us/op 45.78179816777939 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPreFilters 82.79484757866763 us/op 79.20944193685855 us/op 1.05
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGroupLimit 27.934478966054694 us/op 28.08840684041658 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameLongFromSourceOrderBy 119.23166178452064 us/op 118.22251417588225 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameManyJoins 42.09826822554378 us/op 43.29670203823576 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedAggregates 100.39112316992399 us/op 99.03734622061987 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedParen 65.73695468454545 us/op 67.33134634631122 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNamePivot 62.4220069229507 us/op 61.344372408102686 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery15OrsAndLikes 189.97115373668743 us/op 189.2933584278415 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery30Plus 58.73456144173499 us/op 57.88977974009104 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFunc 112.8455560576078 us/op 113.06749818968862 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFuncInProjection 78.6171201086451 us/op 79.10980532472178 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryList 70.23709043527128 us/op 70.01257495068816 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryNestedSelect 137.23518797537506 us/op 137.3730889877142 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuerySimple 11.987801491524428 us/op 12.22252860287112 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralJoins 78.91240010141355 us/op 80.01957104320681 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralProjections 61.413250371075776 us/op 61.279052330665635 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralSelect 114.1956812216259 us/op 117.07460934695817 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSimpleInsert 21.548496771795023 us/op 22.05276514937413 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeJoins 20.940645086272216 us/op 20.85485935147308 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeProjections 18.750059248479 us/op 18.768029246939214 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeSelect 36.22898491603667 us/op 35.73562975558481 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameTimeZone 7.492100320135317 us/op 7.4425677757848785 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery 463.15136805245913 us/op 464.3729402853364 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery01 1167.6302794749315 us/op 1166.4156235418354 us/op 1.00

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

Please sign in to comment.