Skip to content

Commit

Permalink
Adds qualifiers to function call expressions (#1337)
Browse files Browse the repository at this point in the history
  • Loading branch information
RCHowell authored Jan 16, 2024
1 parent dae1ab3 commit 1e1a71f
Show file tree
Hide file tree
Showing 8 changed files with 226 additions and 52 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ import com.amazon.ionelement.api.loadSingleElement
import org.antlr.v4.runtime.ParserRuleContext
import org.antlr.v4.runtime.Token
import org.antlr.v4.runtime.tree.TerminalNode
import org.partiql.ast.Identifier
import org.partiql.errors.ErrorCode
import org.partiql.errors.Property
import org.partiql.errors.PropertyValueMap
Expand Down Expand Up @@ -118,7 +117,7 @@ import java.time.format.DateTimeParseException
*/
internal class PartiQLPigVisitor(
val customTypes: List<CustomType> = listOf(),
private val parameterIndexes: Map<Int, Int> = mapOf()
private val parameterIndexes: Map<Int, Int> = mapOf(),
) :
PartiQLBaseVisitor<PartiqlAst.PartiqlAstNode>() {

Expand Down Expand Up @@ -648,19 +647,22 @@ internal class PartiQLPigVisitor(
excludeTupleAttr(identifier(attr, caseSensitivity))
}

override fun visitExcludeExprCollectionIndex(ctx: PartiQLParser.ExcludeExprCollectionIndexContext) = PartiqlAst.build {
val index = ctx.index.text.toInteger().toLong()
excludeCollectionIndex(index)
}
override fun visitExcludeExprCollectionIndex(ctx: PartiQLParser.ExcludeExprCollectionIndexContext) =
PartiqlAst.build {
val index = ctx.index.text.toInteger().toLong()
excludeCollectionIndex(index)
}

override fun visitExcludeExprCollectionAttr(ctx: PartiQLParser.ExcludeExprCollectionAttrContext) = PartiqlAst.build {
val attr = ctx.attr.getStringValue()
excludeTupleAttr(identifier(attr, caseSensitive()))
}
override fun visitExcludeExprCollectionAttr(ctx: PartiQLParser.ExcludeExprCollectionAttrContext) =
PartiqlAst.build {
val attr = ctx.attr.getStringValue()
excludeTupleAttr(identifier(attr, caseSensitive()))
}

override fun visitExcludeExprCollectionWildcard(ctx: PartiQLParser.ExcludeExprCollectionWildcardContext) = PartiqlAst.build {
excludeCollectionWildcard()
}
override fun visitExcludeExprCollectionWildcard(ctx: PartiQLParser.ExcludeExprCollectionWildcardContext) =
PartiqlAst.build {
excludeCollectionWildcard()
}

override fun visitExcludeExprTupleWildcard(ctx: PartiQLParser.ExcludeExprTupleWildcardContext) = PartiqlAst.build {
excludeTupleWildcard()
Expand Down Expand Up @@ -1292,17 +1294,20 @@ internal class PartiQLPigVisitor(
canLosslessCast(expr, type, metas)
}

override fun visitFunctionCallIdent(ctx: PartiQLParser.FunctionCallIdentContext) = PartiqlAst.build {
val name = ctx.name.getString().lowercase()
val args = ctx.expr().map { visitExpr(it) }
val metas = ctx.name.getSourceMetaContainer()
call(name, args = args, metas = metas)
}

override fun visitFunctionCallReserved(ctx: PartiQLParser.FunctionCallReservedContext) = PartiqlAst.build {
val name = ctx.name.text.lowercase()
override fun visitFunctionCall(ctx: PartiQLParser.FunctionCallContext) = PartiqlAst.build {
val name = when (val nameCtx = ctx.functionName()) {
is PartiQLParser.FunctionNameReservedContext -> {
if (nameCtx.qualifier.isNotEmpty()) error("Legacy AST does not support qualified function names")
nameCtx.name.text.lowercase()
}
is PartiQLParser.FunctionNameSymbolContext -> {
if (nameCtx.qualifier.isNotEmpty()) error("Legacy AST does not support qualified function names")
nameCtx.name.getString().lowercase()
}
else -> error("Expected context FunctionNameReserved or FunctionNameSymbol")
}
val args = ctx.expr().map { visitExpr(it) }
val metas = ctx.name.getSourceMetaContainer()
val metas = ctx.start.getSourceMetaContainer()
call(name, args = args, metas = metas)
}

Expand Down Expand Up @@ -1693,7 +1698,7 @@ internal class PartiQLPigVisitor(
lhs: ParserRuleContext?,
rhs: ParserRuleContext?,
op: Token?,
parent: ParserRuleContext? = null
parent: ParserRuleContext? = null,
) = PartiqlAst.build {
if (parent != null) return@build visit(parent) as PartiqlAst.Expr
val args = listOf(lhs!!, rhs!!).map { visit(it) as PartiqlAst.Expr }
Expand Down Expand Up @@ -1847,7 +1852,7 @@ internal class PartiQLPigVisitor(
withTimeZone: Boolean,
precision: Long,
stringNode: TerminalNode,
timeNode: TerminalNode
timeNode: TerminalNode,
) = PartiqlAst.build {
val time: LocalTime
val formatter = when (withTimeZone) {
Expand All @@ -1871,7 +1876,7 @@ internal class PartiQLPigVisitor(

private fun getTimestampStringAndPrecision(
stringNode: TerminalNode,
integerNode: TerminalNode?
integerNode: TerminalNode?,
): Pair<String, Long?> {
val timestampString = stringNode.getStringValue()
val precision = when (integerNode) {
Expand All @@ -1890,7 +1895,7 @@ internal class PartiQLPigVisitor(
private fun getTimestampDynamic(
timestampString: String,
precision: Long?,
node: TerminalNode
node: TerminalNode,
) = PartiqlAst.build {
val timestamp =
try {
Expand All @@ -1901,17 +1906,22 @@ internal class PartiQLPigVisitor(
val timeZone = timestamp.timeZone?.let { getTimeZone(it) }
timestamp(
timestampValue(
timestamp.year.toLong(), timestamp.month.toLong(), timestamp.day.toLong(),
timestamp.hour.toLong(), timestamp.minute.toLong(), ionDecimal(Decimal.valueOf(timestamp.decimalSecond)),
timeZone, precision
timestamp.year.toLong(),
timestamp.month.toLong(),
timestamp.day.toLong(),
timestamp.hour.toLong(),
timestamp.minute.toLong(),
ionDecimal(Decimal.valueOf(timestamp.decimalSecond)),
timeZone,
precision
)
)
}

private fun getTimestampWithTimezone(
timestampString: String,
precision: Long?,
node: TerminalNode
node: TerminalNode,
) = PartiqlAst.build {
val timestamp = try {
DateTimeUtils.parseTimestamp(timestampString)
Expand All @@ -1926,9 +1936,14 @@ internal class PartiQLPigVisitor(
val timeZone = timestamp.timeZone?.let { getTimeZone(it) }
timestamp(
timestampValue(
timestamp.year.toLong(), timestamp.month.toLong(), timestamp.day.toLong(),
timestamp.hour.toLong(), timestamp.minute.toLong(), ionDecimal(Decimal.valueOf(timestamp.decimalSecond)),
timeZone, precision
timestamp.year.toLong(),
timestamp.month.toLong(),
timestamp.day.toLong(),
timestamp.hour.toLong(),
timestamp.minute.toLong(),
ionDecimal(Decimal.valueOf(timestamp.decimalSecond)),
timeZone,
precision
)
)
}
Expand Down Expand Up @@ -2124,13 +2139,13 @@ internal class PartiQLPigVisitor(
msg: String,
code: ErrorCode,
ctx: PropertyValueMap = PropertyValueMap(),
cause: Throwable? = null
cause: Throwable? = null,
) = this.error(msg, code, ctx, cause)

private fun Token?.err(
msg: String,
code: ErrorCode,
ctx: PropertyValueMap = PropertyValueMap(),
cause: Throwable? = null
cause: Throwable? = null,
) = this.error(msg, code, ctx, cause)
}
12 changes: 8 additions & 4 deletions partiql-parser/src/main/antlr/PartiQL.g4
Original file line number Diff line number Diff line change
Expand Up @@ -709,11 +709,15 @@ trimFunction
dateFunction
: func=(DATE_ADD|DATE_DIFF) PAREN_LEFT dt=IDENTIFIER COMMA expr COMMA expr PAREN_RIGHT;

// SQL-99 10.4 — <routine invocation> ::= <routine name> <SQL argument list>
functionCall
: name=( CHAR_LENGTH | CHARACTER_LENGTH | OCTET_LENGTH |
BIT_LENGTH | UPPER | LOWER | SIZE | EXISTS | COUNT )
PAREN_LEFT ( expr ( COMMA expr )* )? PAREN_RIGHT # FunctionCallReserved
| name=symbolPrimitive PAREN_LEFT ( expr ( COMMA expr )* )? PAREN_RIGHT # FunctionCallIdent
: functionName PAREN_LEFT ( expr ( COMMA expr )* )? PAREN_RIGHT
;

// SQL-99 10.4 — <routine name> ::= [ <schema name> <period> ] <qualified identifier>
functionName
: (qualifier+=symbolPrimitive PERIOD)* name=( CHAR_LENGTH | CHARACTER_LENGTH | OCTET_LENGTH | BIT_LENGTH | UPPER | LOWER | SIZE | EXISTS | COUNT ) # FunctionNameReserved
| (qualifier+=symbolPrimitive PERIOD)* name=symbolPrimitive # FunctionNameSymbol
;

pathStep
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
package org.partiql.parser

import org.partiql.ast.Statement
import org.partiql.parser.impl.PartiQLParserDefault
import org.partiql.parser.internal.PartiQLParserDefault

public interface PartiQLParser {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

package org.partiql.parser

import org.partiql.parser.impl.PartiQLParserDefault
import org.partiql.parser.internal.PartiQLParserDefault

/**
* A builder class to instantiate a [PartiQLParser].
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* language governing permissions and limitations under the License.
*/

package org.partiql.parser.impl
package org.partiql.parser.internal

import com.amazon.ionelement.api.IntElement
import com.amazon.ionelement.api.IntElementSize
Expand Down Expand Up @@ -118,6 +118,7 @@ import org.partiql.ast.graphMatchSelectorShortestK
import org.partiql.ast.graphMatchSelectorShortestKGroup
import org.partiql.ast.groupBy
import org.partiql.ast.groupByKey
import org.partiql.ast.identifierQualified
import org.partiql.ast.identifierSymbol
import org.partiql.ast.let
import org.partiql.ast.letBinding
Expand Down Expand Up @@ -208,7 +209,7 @@ import org.partiql.parser.PartiQLSyntaxException
import org.partiql.parser.SourceLocation
import org.partiql.parser.SourceLocations
import org.partiql.parser.antlr.PartiQLBaseVisitor
import org.partiql.parser.impl.util.DateTimeUtils
import org.partiql.parser.internal.util.DateTimeUtils
import org.partiql.value.NumericValue
import org.partiql.value.PartiQLValueExperimental
import org.partiql.value.StringValue
Expand Down Expand Up @@ -1723,16 +1724,34 @@ internal class PartiQLParserDefault : PartiQLParser {
exprCanLosslessCast(expr, type)
}

override fun visitFunctionCallIdent(ctx: GeneratedParser.FunctionCallIdentContext) = translate(ctx) {
val function = visitSymbolPrimitive(ctx.name)
override fun visitFunctionCall(ctx: GeneratedParser.FunctionCallContext) = translate(ctx) {
val function = visit(ctx.functionName()) as Identifier
val args = visitOrEmpty<Expr>(ctx.expr())
exprCall(function, args)
}

override fun visitFunctionCallReserved(ctx: GeneratedParser.FunctionCallReservedContext) = translate(ctx) {
val function = ctx.name.text.toIdentifier()
val args = visitOrEmpty<Expr>(ctx.expr())
exprCall(function, args)
override fun visitFunctionNameReserved(ctx: GeneratedParser.FunctionNameReservedContext): Identifier {
val path = ctx.qualifier.map { visitSymbolPrimitive(it) }
val name = identifierSymbol(ctx.name.text, Identifier.CaseSensitivity.INSENSITIVE)
return if (path.isEmpty()) {
name
} else {
val root = path.first()
val steps = path.drop(1) + listOf(name)
identifierQualified(root, steps)
}
}

override fun visitFunctionNameSymbol(ctx: GeneratedParser.FunctionNameSymbolContext): Identifier {
val path = ctx.qualifier.map { visitSymbolPrimitive(it) }
val name = visitSymbolPrimitive(ctx.name)
return if (path.isEmpty()) {
name
} else {
val root = path.first()
val steps = path.drop(1) + listOf(name)
identifierQualified(root, steps)
}
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.partiql.parser.impl.util
package org.partiql.parser.internal.util

import org.partiql.value.datetime.Date
import org.partiql.value.datetime.DateTimeException
Expand Down
Loading

1 comment on commit 1e1a71f

@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: 1e1a71f Previous: dae1ab3 Ratio
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithInterruptible 280.391725257242 us/op 270.0106539449804 us/op 1.04
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncGroupingWithoutInterruptible 268.3860873041798 us/op 268.54761881334707 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithInterruptible 259.8295528626967 us/op 258.69004271025307 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinAggFuncWithoutInterruptible 246.06511231911742 us/op 251.03565754592432 us/op 0.98
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithInterruptible 181.9226364427383 us/op 171.80777890554123 us/op 1.06
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.compileCrossJoinWithoutInterruptible 178.32955634664253 us/op 177.7459009311736 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithInterruptible 12993227.250600003 us/op 13056322.261450002 us/op 1.00
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggGroupWithoutInterruptible 13170061.344949998 us/op 12871927.638400001 us/op 1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithInterruptible 4951031.352399999 us/op 5044713.62575 us/op 0.98
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinAggWithoutInterruptible 5292964.2635 us/op 4817658.8909 us/op 1.10
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithInterruptible 38.94117936920491 us/op 40.083953080429204 us/op 0.97
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.evalCrossJoinWithoutInterruptible 39.97290637510282 us/op 38.728073663898996 us/op 1.03
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithInterruptible 13321201.891399998 us/op 13057212.563049998 us/op 1.02
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggGroupWithoutInterruptible 13004057.364699999 us/op 13265575.783349998 us/op 0.98
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithInterruptible 4931239.265400001 us/op 5151073.301200001 us/op 0.96
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinAggWithoutInterruptible 4979550.692100001 us/op 5521471.507900001 us/op 0.90
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithInterruptible 94387.7776818182 us/op 103729.82591348485 us/op 0.91
org.partiql.jmh.benchmarks.CompilerInterruptionBenchmark.iterCrossJoinWithoutInterruptible 97370.24833409092 us/op 92658.75474772727 us/op 1.05
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler15 85.60745575059293 us/op 81.25536910680981 us/op 1.05
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLCompiler30 175.58993985562617 us/op 153.99945686514616 us/op 1.14
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator15 375926.68765000004 us/op 372979.13714999997 us/op 1.01
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30 733961.7808 us/op 737396.0729499998 us/op 1.00
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLEvaluator30WithData10 7326738.187749999 us/op 7249009.022650001 us/op 1.01
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser15 134.50521393313156 us/op 132.58252463638968 us/op 1.01
org.partiql.jmh.benchmarks.MultipleLikeBenchmark.testPartiQLParser30 251.8886548860723 us/op 245.01252209735563 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameCaseWhenThen 33.74826067877639 us/op 32.634312506203344 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery 42.95221762238739 us/op 41.83177078251854 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery01 244.59044019667618 us/op 223.928483925036 us/op 1.09
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameComplexQuery02 411.4848059275704 us/op 375.00892061435803 us/op 1.10
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExceptUnionIntersectSixty 158.1847788030902 us/op 156.51828290913338 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameExec20Expressions 47.004675181928114 us/op 46.57975581405992 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameFromLet 34.11096494199936 us/op 34.48165807124802 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPattern 31.39420641047841 us/op 32.495428428039105 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGraphPreFilters 57.20268413761603 us/op 58.03356735803849 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameGroupLimit 39.137985549425835 us/op 40.5569266412589 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameLongFromSourceOrderBy 47.97255762654425 us/op 47.88937710570767 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameManyJoins 48.49325636042987 us/op 50.55909568752063 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedAggregates 84.1560661414243 us/op 86.81470789192987 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameNestedParen 13.323018961242587 us/op 13.554928410453607 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNamePivot 50.54996804303473 us/op 49.761408519161265 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery15OrsAndLikes 163.9737112277807 us/op 159.00912196036228 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuery30Plus 85.86746344694613 us/op 87.21510289294982 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFunc 38.240384123581194 us/op 38.68159449335118 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryFuncInProjection 42.54316596410396 us/op 42.824433593775034 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryList 59.839497579562384 us/op 59.205831802299464 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQueryNestedSelect 584.6558065892298 us/op 559.0278533936018 us/op 1.05
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameQuerySimple 12.208008432013056 us/op 12.171040940005758 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralJoins 16.945593031316882 us/op 17.061816854539508 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralProjections 55.369198358185145 us/op 56.390495013828755 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSeveralSelect 157.93750128618336 us/op 160.05845163077322 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSimpleInsert 23.171424589487916 us/op 23.42852134874192 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeJoins 16.468004683565294 us/op 16.976805589126137 us/op 0.97
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeProjections 23.187223613969305 us/op 22.47729956604156 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameSomeSelect 40.51506918007949 us/op 40.80928347025771 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameTimeZone 18.884442624912293 us/op 19.637571355677267 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery 191.50273970399843 us/op 192.03686054996447 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseFailNameVeryLongQuery01 762.7670597263648 us/op 750.5328725479857 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameCaseWhenThen 18.64300782660467 us/op 19.00348378011162 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery 177.06205966681253 us/op 185.34104595602884 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameComplexQuery01 84.64149898249018 us/op 81.63691178830884 us/op 1.04
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExceptUnionIntersectSixty 161.31612325967788 us/op 163.11433770438273 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameExec20Expressions 45.733650617027415 us/op 45.54295838952214 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameFromLet 27.784789668795554 us/op 26.938854796509162 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPattern 29.865673118639716 us/op 29.830128212064768 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGraphPreFilters 55.0836302686571 us/op 53.37199582141557 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameGroupLimit 25.98782480377947 us/op 25.126581546484665 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameLongFromSourceOrderBy 100.50732645746453 us/op 99.20620245408496 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameManyJoins 33.74116826349851 us/op 33.87373654479272 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedAggregates 76.24049791327602 us/op 72.65593185441647 us/op 1.05
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameNestedParen 61.80475387740423 us/op 59.76169631919804 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNamePivot 50.307448176199195 us/op 50.974899500661834 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery15OrsAndLikes 128.94803403132397 us/op 128.5192105813797 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuery30Plus 46.08928725714456 us/op 42.722041735755845 us/op 1.08
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFunc 99.89554026487272 us/op 97.61353898905534 us/op 1.02
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryFuncInProjection 63.875320779449154 us/op 64.63465447950526 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryList 56.25917453583512 us/op 55.74698323527633 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQueryNestedSelect 108.7272010804675 us/op 105.34141043946815 us/op 1.03
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameQuerySimple 8.658991935699863 us/op 8.744244632284298 us/op 0.99
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralJoins 53.59728820163016 us/op 53.071249412902986 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralProjections 40.46737199465157 us/op 40.5631573057815 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSeveralSelect 76.83927667571163 us/op 76.9517074015703 us/op 1.00
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSimpleInsert 15.367286690934062 us/op 15.2099733915262 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeJoins 14.710976538029907 us/op 14.628004359850626 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeProjections 12.939767319879298 us/op 13.413298782765045 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameSomeSelect 24.551685919654904 us/op 24.399324432876217 us/op 1.01
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameTimeZone 5.860178332945687 us/op 6.00272368683748 us/op 0.98
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery 299.515685208837 us/op 312.8286359169446 us/op 0.96
org.partiql.jmh.benchmarks.ParserBenchmark.parseNameVeryLongQuery01 823.7106156301267 us/op 810.6017389480354 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLCompiler 7.947569945352521 us/op 6.940185077372535 us/op 1.15
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLEvaluator 2.031357359309643 us/op 1.7982114501038127 us/op 1.13
org.partiql.jmh.benchmarks.PartiQLBenchmark.testPartiQLParser 7.831452258399689 us/op 8.131077045850827 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameCaseWhenThen 31.925071294209154 us/op 32.21732387305991 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery 43.28718474768492 us/op 42.30345056273606 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery01 235.71161691338656 us/op 224.17285156055237 us/op 1.05
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameComplexQuery02 412.9222036358609 us/op 375.66533652540306 us/op 1.10
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExceptUnionIntersectSixty 155.71188671597963 us/op 155.64696177094902 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameExec20Expressions 43.68039581167169 us/op 45.99736190374022 us/op 0.95
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameFromLet 32.398345932441906 us/op 32.897799210865394 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPattern 30.851049938956162 us/op 30.975372706325295 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGraphPreFilters 55.09580981640765 us/op 56.215048719512005 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameGroupLimit 38.94791848612367 us/op 40.4186782777178 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameLongFromSourceOrderBy 48.02904861062447 us/op 47.098893313100504 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameManyJoins 48.56740106043188 us/op 49.05484172151683 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedAggregates 84.7132558438904 us/op 85.26297572386409 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameNestedParen 12.971028603517098 us/op 13.14637104103522 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNamePivot 51.23943177672936 us/op 50.6324049387685 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery15OrsAndLikes 153.2123622675167 us/op 154.2625017349755 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuery30Plus 85.50245132422161 us/op 84.13763105053611 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFunc 38.02625503681033 us/op 37.70020081102457 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryFuncInProjection 42.93551272942624 us/op 42.05549936318887 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryList 58.742347512043864 us/op 56.81494843026006 us/op 1.03
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQueryNestedSelect 583.0167186800345 us/op 559.8070177272599 us/op 1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameQuerySimple 11.754259190753666 us/op 11.69409560221963 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralJoins 16.184420986632972 us/op 16.197597037602115 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralProjections 54.179103518709 us/op 53.50013610456697 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSeveralSelect 158.741067001514 us/op 157.85582493164384 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSimpleInsert 22.21481002762268 us/op 21.824540648088337 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeJoins 16.364096145448155 us/op 16.230935800722683 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeProjections 22.016095109567733 us/op 21.670718833985855 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameSomeSelect 39.592856426152444 us/op 39.59917027101436 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameTimeZone 18.50656034661077 us/op 18.96070301797123 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery 192.1960634928128 us/op 191.63351632896064 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseFailNameVeryLongQuery01 781.529791119497 us/op 754.8935243023523 us/op 1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameCaseWhenThen 24.01396306828136 us/op 23.58057261272382 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery 254.5001209482877 us/op 255.3664343098951 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameComplexQuery01 124.2761799191009 us/op 118.59037003548308 us/op 1.05
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExceptUnionIntersectSixty 259.86812503602687 us/op 269.0746479443011 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameExec20Expressions 63.65375332212532 us/op 62.917614717857944 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameFromLet 39.520432784969145 us/op 39.97624291730306 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPattern 47.63725685082484 us/op 45.856491533779256 us/op 1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGraphPreFilters 79.14413973468183 us/op 80.67480476838698 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameGroupLimit 29.57763281950895 us/op 27.96937228039286 us/op 1.06
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameLongFromSourceOrderBy 118.37001066395112 us/op 118.86837871914118 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameManyJoins 42.98026028129836 us/op 43.36941062165926 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedAggregates 100.84531293752468 us/op 98.4058686577023 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameNestedParen 67.53961646010326 us/op 68.5587279117019 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNamePivot 62.84539413033606 us/op 64.9198280515251 us/op 0.97
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery15OrsAndLikes 196.82820106252177 us/op 190.12414747801992 us/op 1.04
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuery30Plus 58.17739202219066 us/op 58.02894681063371 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFunc 114.89990999337901 us/op 114.78725010504013 us/op 1.00
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryFuncInProjection 78.77408095537284 us/op 79.69663214948208 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryList 69.13003823137527 us/op 69.886833287776 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQueryNestedSelect 141.63155837154906 us/op 138.62536778420485 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameQuerySimple 11.460998849844476 us/op 11.879239686911136 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralJoins 79.36787684952452 us/op 81.3617424517539 us/op 0.98
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralProjections 62.697226364533776 us/op 63.08244540611891 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSeveralSelect 113.46136491634914 us/op 114.3048756661523 us/op 0.99
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSimpleInsert 21.82878183123744 us/op 22.644172125061182 us/op 0.96
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeJoins 20.441314923174026 us/op 21.765228211753644 us/op 0.94
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeProjections 18.93807821378515 us/op 18.53260058437392 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameSomeSelect 36.10317271312599 us/op 35.410302053628826 us/op 1.02
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameTimeZone 7.1498925329710845 us/op 7.563458756259818 us/op 0.95
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery 470.1593033043499 us/op 466.49344412392304 us/op 1.01
org.partiql.jmh.benchmarks.PartiQLParserBenchmark.parseNameVeryLongQuery01 1174.0389429421293 us/op 1138.7466941883554 us/op 1.03

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

Please sign in to comment.