From 408cdcb3913911cf556403a8b1b30ec6e76a2a88 Mon Sep 17 00:00:00 2001 From: "R. C. Howell" Date: Mon, 16 Sep 2024 15:54:13 -0700 Subject: [PATCH 1/3] [1/2] Resolve functions from the catalog --- .../org/partiql/eval/internal/SqlCompiler.kt | 6 +- .../eval/internal/operator/Operator.kt | 3 +- .../internal/operator/rel/RelOpAggregate.kt | 6 +- .../internal/operator/rex/ExprCallDynamic.kt | 12 +- .../internal/operator/rex/ExprCallStatic.kt | 4 +- .../operator/rex/ExprCallDynamicTest.kt | 12 +- partiql-plan/api/partiql-plan.api | 14 +- .../partiql/plan/v1/builder/PlanFactory.kt | 10 +- .../plan/v1/operator/rel/RelAggregateCall.kt | 8 +- .../plan/v1/operator/rex/RexCallDynamic.kt | 8 +- .../plan/v1/operator/rex/RexCallStatic.kt | 8 +- .../org/partiql/planner/internal/Env.kt | 58 ++- .../partiql/planner/internal/FnComparator.kt | 6 +- .../partiql/planner/internal/FnResolver.kt | 10 +- .../internal/transforms/PlanTransformV1.kt | 8 +- .../planner/internal/typer/FnResolverTest.kt | 10 +- partiql-spi/api/partiql-spi.api | 149 +++---- .../org/partiql/planner/catalog/Catalog.kt | 19 +- .../org/partiql/planner/catalog/Function.kt | 115 ----- .../kotlin/org/partiql/spi/fn/AggSignature.kt | 6 +- .../partiql/spi/fn/{Agg.kt => Aggregation.kt} | 25 +- .../src/main/kotlin/org/partiql/spi/fn/Fn.kt | 22 - .../kotlin/org/partiql/spi/fn/FnParameter.kt | 14 - .../kotlin/org/partiql/spi/fn/FnSignature.kt | 49 +- .../kotlin/org/partiql/spi/fn/Function.kt | 48 ++ .../kotlin/org/partiql/spi/fn/Parameter.kt | 21 + .../main/kotlin/org/partiql/spi/fn/Routine.kt | 29 ++ .../kotlin/org/partiql/spi/fn/SqlBuiltins.kt | 6 +- .../org/partiql/spi/fn/SqlFnProvider.kt | 17 +- .../org/partiql/spi/fn/builtins/AggAny.kt | 16 +- .../org/partiql/spi/fn/builtins/AggAvg.kt | 58 +-- .../org/partiql/spi/fn/builtins/AggCount.kt | 10 +- .../org/partiql/spi/fn/builtins/AggEvery.kt | 16 +- .../org/partiql/spi/fn/builtins/AggGroupAs.kt | 10 +- .../org/partiql/spi/fn/builtins/AggMax.kt | 58 +-- .../org/partiql/spi/fn/builtins/AggMin.kt | 58 +-- .../org/partiql/spi/fn/builtins/AggSome.kt | 16 +- .../org/partiql/spi/fn/builtins/AggSum.kt | 58 +-- .../org/partiql/spi/fn/builtins/FnAbs.kt | 36 +- .../org/partiql/spi/fn/builtins/FnAnd.kt | 10 +- .../org/partiql/spi/fn/builtins/FnBetween.kt | 117 ++--- .../partiql/spi/fn/builtins/FnBitLength.kt | 16 +- .../partiql/spi/fn/builtins/FnBitwiseAnd.kt | 34 +- .../partiql/spi/fn/builtins/FnCardinality.kt | 20 +- .../partiql/spi/fn/builtins/FnCharLength.kt | 16 +- .../org/partiql/spi/fn/builtins/FnCollAgg.kt | 8 +- .../org/partiql/spi/fn/builtins/FnConcat.kt | 22 +- .../partiql/spi/fn/builtins/FnCurrentDate.kt | 4 +- .../partiql/spi/fn/builtins/FnCurrentUser.kt | 4 +- .../partiql/spi/fn/builtins/FnDateAddDay.kt | 40 +- .../partiql/spi/fn/builtins/FnDateAddHour.kt | 40 +- .../spi/fn/builtins/FnDateAddMinute.kt | 40 +- .../partiql/spi/fn/builtins/FnDateAddMonth.kt | 40 +- .../spi/fn/builtins/FnDateAddSecond.kt | 40 +- .../partiql/spi/fn/builtins/FnDateAddYear.kt | 40 +- .../partiql/spi/fn/builtins/FnDateDiffDay.kt | 16 +- .../partiql/spi/fn/builtins/FnDateDiffHour.kt | 16 +- .../spi/fn/builtins/FnDateDiffMinute.kt | 16 +- .../spi/fn/builtins/FnDateDiffMonth.kt | 16 +- .../spi/fn/builtins/FnDateDiffSecond.kt | 16 +- .../partiql/spi/fn/builtins/FnDateDiffYear.kt | 16 +- .../org/partiql/spi/fn/builtins/FnDivide.kt | 53 +-- .../org/partiql/spi/fn/builtins/FnEq.kt | 10 +- .../org/partiql/spi/fn/builtins/FnExists.kt | 20 +- .../org/partiql/spi/fn/builtins/FnExtract.kt | 68 +-- .../org/partiql/spi/fn/builtins/FnGt.kt | 88 ++-- .../org/partiql/spi/fn/builtins/FnGte.kt | 88 ++-- .../partiql/spi/fn/builtins/FnInCollection.kt | 418 +++++++++--------- .../org/partiql/spi/fn/builtins/FnIsAny.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsBag.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsBinary.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsBlob.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsBool.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsByte.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsChar.kt | 14 +- .../org/partiql/spi/fn/builtins/FnIsClob.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsDate.kt | 8 +- .../partiql/spi/fn/builtins/FnIsDecimal.kt | 16 +- .../spi/fn/builtins/FnIsDecimalArbitrary.kt | 8 +- .../partiql/spi/fn/builtins/FnIsFloat32.kt | 8 +- .../partiql/spi/fn/builtins/FnIsFloat64.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsInt.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsInt16.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsInt32.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsInt64.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsInt8.kt | 8 +- .../partiql/spi/fn/builtins/FnIsInterval.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsList.kt | 8 +- .../partiql/spi/fn/builtins/FnIsMissing.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsNull.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsSexp.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsString.kt | 14 +- .../org/partiql/spi/fn/builtins/FnIsStruct.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsSymbol.kt | 8 +- .../org/partiql/spi/fn/builtins/FnIsTime.kt | 16 +- .../partiql/spi/fn/builtins/FnIsTimestamp.kt | 16 +- .../org/partiql/spi/fn/builtins/FnLike.kt | 22 +- .../partiql/spi/fn/builtins/FnLikeEscape.kt | 28 +- .../org/partiql/spi/fn/builtins/FnLower.kt | 16 +- .../org/partiql/spi/fn/builtins/FnLt.kt | 88 ++-- .../org/partiql/spi/fn/builtins/FnLte.kt | 88 ++-- .../org/partiql/spi/fn/builtins/FnMinus.kt | 53 +-- .../org/partiql/spi/fn/builtins/FnModulo.kt | 53 +-- .../org/partiql/spi/fn/builtins/FnNeg.kt | 36 +- .../org/partiql/spi/fn/builtins/FnNot.kt | 8 +- .../partiql/spi/fn/builtins/FnOctetLength.kt | 16 +- .../org/partiql/spi/fn/builtins/FnOr.kt | 10 +- .../org/partiql/spi/fn/builtins/FnPlus.kt | 53 +-- .../org/partiql/spi/fn/builtins/FnPos.kt | 36 +- .../org/partiql/spi/fn/builtins/FnPosition.kt | 22 +- .../org/partiql/spi/fn/builtins/FnSize.kt | 20 +- .../partiql/spi/fn/builtins/FnSubstring.kt | 46 +- .../org/partiql/spi/fn/builtins/FnTimes.kt | 53 +-- .../org/partiql/spi/fn/builtins/FnTrim.kt | 16 +- .../partiql/spi/fn/builtins/FnTrimChars.kt | 22 +- .../partiql/spi/fn/builtins/FnTrimLeading.kt | 16 +- .../spi/fn/builtins/FnTrimLeadingChars.kt | 22 +- .../partiql/spi/fn/builtins/FnTrimTrailing.kt | 16 +- .../spi/fn/builtins/FnTrimTrailingChars.kt | 22 +- .../org/partiql/spi/fn/builtins/FnUpper.kt | 16 +- .../org/partiql/spi/fn/builtins/FnUtcnow.kt | 4 +- .../spi/fn/builtins/internal/Accumulator.kt | 4 +- .../builtins/internal/AccumulatorCountStar.kt | 4 +- .../org/partiql/plugins/local/LocalCatalog.kt | 3 - 124 files changed, 1676 insertions(+), 1748 deletions(-) delete mode 100644 partiql-spi/src/main/kotlin/org/partiql/planner/catalog/Function.kt rename partiql-spi/src/main/kotlin/org/partiql/spi/fn/{Agg.kt => Aggregation.kt} (50%) delete mode 100644 partiql-spi/src/main/kotlin/org/partiql/spi/fn/Fn.kt delete mode 100644 partiql-spi/src/main/kotlin/org/partiql/spi/fn/FnParameter.kt create mode 100644 partiql-spi/src/main/kotlin/org/partiql/spi/fn/Function.kt create mode 100644 partiql-spi/src/main/kotlin/org/partiql/spi/fn/Parameter.kt create mode 100644 partiql-spi/src/main/kotlin/org/partiql/spi/fn/Routine.kt diff --git a/partiql-eval/src/main/kotlin/org/partiql/eval/internal/SqlCompiler.kt b/partiql-eval/src/main/kotlin/org/partiql/eval/internal/SqlCompiler.kt index a178c3fb23..e48efe382d 100644 --- a/partiql-eval/src/main/kotlin/org/partiql/eval/internal/SqlCompiler.kt +++ b/partiql-eval/src/main/kotlin/org/partiql/eval/internal/SqlCompiler.kt @@ -115,7 +115,7 @@ import org.partiql.plan.v1.operator.rex.RexTable import org.partiql.plan.v1.operator.rex.RexVar import org.partiql.plan.v1.operator.rex.RexVisitor import org.partiql.planner.catalog.Session -import org.partiql.spi.fn.Agg +import org.partiql.spi.fn.Aggregation import org.partiql.types.PType import org.partiql.plan.Rel as IRel @@ -166,7 +166,7 @@ internal class SqlCompiler( else -> Operator.Aggregation.SetQuantifier.ALL } object : Operator.Aggregation { - override val delegate: Agg = agg + override val delegate: Aggregation = agg override val args: List = args override val setQuantifier: Operator.Aggregation.SetQuantifier = setq } @@ -382,7 +382,7 @@ internal class SqlCompiler( val fn = rex.getFunction() val args = rex.getArgs().map { compile(it, ctx) } val fnTakesInMissing = fn.signature.parameters.any { - it.type.kind == PType.Kind.DYNAMIC // TODO: Is this needed? + it.getType().kind == PType.Kind.DYNAMIC // TODO: Is this needed? } return when (fnTakesInMissing) { true -> ExprCallStatic(fn, args.map { it.catch() }.toTypedArray()) diff --git a/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/Operator.kt b/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/Operator.kt index e4abd8f40e..e640d75216 100644 --- a/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/Operator.kt +++ b/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/Operator.kt @@ -3,7 +3,6 @@ package org.partiql.eval.internal.operator import org.partiql.eval.internal.Environment import org.partiql.eval.internal.Record import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Agg internal sealed interface Operator { @@ -27,7 +26,7 @@ internal sealed interface Operator { interface Aggregation : Operator { - val delegate: Agg + val delegate: org.partiql.spi.fn.Aggregation val args: List diff --git a/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/rel/RelOpAggregate.kt b/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/rel/RelOpAggregate.kt index 23679ee545..2fda3256ba 100644 --- a/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/rel/RelOpAggregate.kt +++ b/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/rel/RelOpAggregate.kt @@ -4,7 +4,7 @@ import org.partiql.eval.internal.Environment import org.partiql.eval.internal.Record import org.partiql.eval.internal.operator.Operator import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Agg +import org.partiql.spi.fn.Aggregation import java.util.TreeMap import java.util.TreeSet @@ -19,12 +19,12 @@ internal class RelOpAggregate( private val aggregationMap = TreeMap, List>(DatumArrayComparator) /** - * Wraps an [Agg.Accumulator] to help with filtering distinct values. + * Wraps an [Aggregation.Accumulator] to help with filtering distinct values. * * @property seen maintains which values have already been seen. If null, we accumulate all values coming through. */ class AccumulatorWrapper( - val delegate: Agg.Accumulator, + val delegate: Aggregation.Accumulator, val args: List, val seen: TreeSet>? ) diff --git a/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/rex/ExprCallDynamic.kt b/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/rex/ExprCallDynamic.kt index e6ba63a920..a8f7af00c1 100644 --- a/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/rex/ExprCallDynamic.kt +++ b/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/rex/ExprCallDynamic.kt @@ -4,7 +4,7 @@ import org.partiql.errors.TypeCheckException import org.partiql.eval.internal.Environment import org.partiql.eval.internal.operator.Operator import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn +import org.partiql.spi.fn.Function import org.partiql.types.PType import org.partiql.value.PartiQLValue @@ -30,14 +30,14 @@ import org.partiql.value.PartiQLValue */ internal class ExprCallDynamic( private val name: String, - candidateFns: Array, + candidateFns: Array, private val args: Array ) : Operator.Expr { private val candidates = Array(candidateFns.size) { Candidate(candidateFns[it]) } private val paramIndices: IntRange = args.indices - private val paramTypes: List> = this.candidates.map { candidate -> candidate.fn.signature.parameters.map { it.type } } - private val paramFamilies: List> = this.candidates.map { candidate -> candidate.fn.signature.parameters.map { family(it.type.kind) } } + private val paramTypes: List> = this.candidates.map { candidate -> candidate.fn.signature.parameters.map { it.getType() } } + private val paramFamilies: List> = this.candidates.map { candidate -> candidate.fn.signature.parameters.map { family(it.getType().kind) } } private val cachedMatches: MutableMap, Int> = mutableMapOf() override fun eval(env: Environment): Datum { @@ -154,7 +154,7 @@ internal class ExprCallDynamic( * @see ExprCallDynamic */ private class Candidate( - val fn: Fn, + val fn: Function, ) { /** @@ -168,7 +168,7 @@ internal class ExprCallDynamic( return nil.invoke() } val argType = arg.type - val paramType = fn.signature.parameters[i].type + val paramType = fn.signature.parameters[i].getType() when (paramType == argType) { true -> arg false -> CastTable.cast(arg, paramType) diff --git a/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/rex/ExprCallStatic.kt b/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/rex/ExprCallStatic.kt index acbda8b4f3..6255308d97 100644 --- a/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/rex/ExprCallStatic.kt +++ b/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/rex/ExprCallStatic.kt @@ -3,12 +3,12 @@ package org.partiql.eval.internal.operator.rex import org.partiql.eval.internal.Environment import org.partiql.eval.internal.operator.Operator import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn +import org.partiql.spi.fn.Function import org.partiql.value.PartiQLValueExperimental @OptIn(PartiQLValueExperimental::class) internal class ExprCallStatic( - private val fn: Fn, + private val fn: Function, private val inputs: Array, ) : Operator.Expr { diff --git a/partiql-eval/src/test/kotlin/org/partiql/eval/internal/operator/rex/ExprCallDynamicTest.kt b/partiql-eval/src/test/kotlin/org/partiql/eval/internal/operator/rex/ExprCallDynamicTest.kt index bd547f8446..e9516e4af8 100644 --- a/partiql-eval/src/test/kotlin/org/partiql/eval/internal/operator/rex/ExprCallDynamicTest.kt +++ b/partiql-eval/src/test/kotlin/org/partiql/eval/internal/operator/rex/ExprCallDynamicTest.kt @@ -13,9 +13,9 @@ import org.partiql.eval.value.Datum.bool import org.partiql.eval.value.Datum.integer import org.partiql.eval.value.Datum.list import org.partiql.eval.value.Datum.string -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType import org.partiql.value.PartiQLValueExperimental import org.partiql.value.PartiQLValueType @@ -64,14 +64,14 @@ class ExprCallDynamicTest { ) @OptIn(PartiQLValueExperimental::class) - internal val candidates: Array = params.mapIndexed { index, it -> - object : Fn { + internal val candidates: Array = params.mapIndexed { index, it -> + object : Function { override val signature: FnSignature = FnSignature( name = "example_function", returns = PType.integer(), parameters = listOf( - FnParameter("first", type = it.first.toPType()), - FnParameter("second", type = it.second.toPType()), + Parameter("first", type = it.first.toPType()), + Parameter("second", type = it.second.toPType()), ) ) diff --git a/partiql-plan/api/partiql-plan.api b/partiql-plan/api/partiql-plan.api index 472fc8d779..9c67200cb4 100644 --- a/partiql-plan/api/partiql-plan.api +++ b/partiql-plan/api/partiql-plan.api @@ -2530,7 +2530,7 @@ public abstract interface class org/partiql/plan/v1/builder/PlanFactory { public static final field Companion Lorg/partiql/plan/v1/builder/PlanFactory$Companion; public static fun getSTANDARD ()Lorg/partiql/plan/v1/builder/PlanFactory; public abstract fun relAggregate (Lorg/partiql/plan/v1/operator/rel/Rel;Ljava/util/List;Ljava/util/List;)Lorg/partiql/plan/v1/operator/rel/RelAggregate; - public abstract fun relAggregateCall (Lorg/partiql/spi/fn/Agg;Ljava/util/List;Z)Lorg/partiql/plan/v1/operator/rel/RelAggregateCall; + public abstract fun relAggregateCall (Lorg/partiql/spi/fn/Aggregation;Ljava/util/List;Z)Lorg/partiql/plan/v1/operator/rel/RelAggregateCall; public abstract fun relCorrelate (Lorg/partiql/plan/v1/operator/rel/Rel;Lorg/partiql/plan/v1/operator/rel/Rel;)Lorg/partiql/plan/v1/operator/rel/RelCorrelate; public abstract fun relCorrelate (Lorg/partiql/plan/v1/operator/rel/Rel;Lorg/partiql/plan/v1/operator/rel/Rel;Lorg/partiql/plan/v1/operator/rel/RelJoinType;)Lorg/partiql/plan/v1/operator/rel/RelCorrelate; public abstract fun relDistinct (Lorg/partiql/plan/v1/operator/rel/Rel;)Lorg/partiql/plan/v1/operator/rel/RelDistinct; @@ -2554,7 +2554,7 @@ public abstract interface class org/partiql/plan/v1/builder/PlanFactory { public abstract fun rexArray (Ljava/util/Collection;)Lorg/partiql/plan/v1/operator/rex/RexArray; public abstract fun rexBag (Ljava/util/Collection;)Lorg/partiql/plan/v1/operator/rex/RexBag; public abstract fun rexCall (Ljava/util/List;Ljava/util/List;)Lorg/partiql/plan/v1/operator/rex/RexCallDynamic; - public abstract fun rexCall (Lorg/partiql/spi/fn/Fn;Ljava/util/List;)Lorg/partiql/plan/v1/operator/rex/RexCallStatic; + public abstract fun rexCall (Lorg/partiql/spi/fn/Function;Ljava/util/List;)Lorg/partiql/plan/v1/operator/rex/RexCallStatic; public abstract fun rexCase (Ljava/util/List;Lorg/partiql/plan/v1/operator/rex/Rex;)Lorg/partiql/plan/v1/operator/rex/RexCase; public abstract fun rexCase (Lorg/partiql/plan/v1/operator/rex/Rex;Ljava/util/List;Lorg/partiql/plan/v1/operator/rex/Rex;)Lorg/partiql/plan/v1/operator/rex/RexCase; public abstract fun rexCast (Lorg/partiql/plan/v1/operator/rex/Rex;Lorg/partiql/types/PType;)Lorg/partiql/plan/v1/operator/rex/RexCast; @@ -2586,8 +2586,8 @@ public final class org/partiql/plan/v1/builder/PlanFactory$Companion { public final class org/partiql/plan/v1/builder/PlanFactory$DefaultImpls { public static fun relAggregate (Lorg/partiql/plan/v1/builder/PlanFactory;Lorg/partiql/plan/v1/operator/rel/Rel;Ljava/util/List;Ljava/util/List;)Lorg/partiql/plan/v1/operator/rel/RelAggregate; - public static fun relAggregateCall (Lorg/partiql/plan/v1/builder/PlanFactory;Lorg/partiql/spi/fn/Agg;Ljava/util/List;Z)Lorg/partiql/plan/v1/operator/rel/RelAggregateCall; - public static synthetic fun relAggregateCall$default (Lorg/partiql/plan/v1/builder/PlanFactory;Lorg/partiql/spi/fn/Agg;Ljava/util/List;ZILjava/lang/Object;)Lorg/partiql/plan/v1/operator/rel/RelAggregateCall; + public static fun relAggregateCall (Lorg/partiql/plan/v1/builder/PlanFactory;Lorg/partiql/spi/fn/Aggregation;Ljava/util/List;Z)Lorg/partiql/plan/v1/operator/rel/RelAggregateCall; + public static synthetic fun relAggregateCall$default (Lorg/partiql/plan/v1/builder/PlanFactory;Lorg/partiql/spi/fn/Aggregation;Ljava/util/List;ZILjava/lang/Object;)Lorg/partiql/plan/v1/operator/rel/RelAggregateCall; public static fun relCorrelate (Lorg/partiql/plan/v1/builder/PlanFactory;Lorg/partiql/plan/v1/operator/rel/Rel;Lorg/partiql/plan/v1/operator/rel/Rel;)Lorg/partiql/plan/v1/operator/rel/RelCorrelate; public static fun relCorrelate (Lorg/partiql/plan/v1/builder/PlanFactory;Lorg/partiql/plan/v1/operator/rel/Rel;Lorg/partiql/plan/v1/operator/rel/Rel;Lorg/partiql/plan/v1/operator/rel/RelJoinType;)Lorg/partiql/plan/v1/operator/rel/RelCorrelate; public static fun relDistinct (Lorg/partiql/plan/v1/builder/PlanFactory;Lorg/partiql/plan/v1/operator/rel/Rel;)Lorg/partiql/plan/v1/operator/rel/RelDistinct; @@ -2612,7 +2612,7 @@ public final class org/partiql/plan/v1/builder/PlanFactory$DefaultImpls { public static fun rexArray (Lorg/partiql/plan/v1/builder/PlanFactory;Ljava/util/Collection;)Lorg/partiql/plan/v1/operator/rex/RexArray; public static fun rexBag (Lorg/partiql/plan/v1/builder/PlanFactory;Ljava/util/Collection;)Lorg/partiql/plan/v1/operator/rex/RexBag; public static fun rexCall (Lorg/partiql/plan/v1/builder/PlanFactory;Ljava/util/List;Ljava/util/List;)Lorg/partiql/plan/v1/operator/rex/RexCallDynamic; - public static fun rexCall (Lorg/partiql/plan/v1/builder/PlanFactory;Lorg/partiql/spi/fn/Fn;Ljava/util/List;)Lorg/partiql/plan/v1/operator/rex/RexCallStatic; + public static fun rexCall (Lorg/partiql/plan/v1/builder/PlanFactory;Lorg/partiql/spi/fn/Function;Ljava/util/List;)Lorg/partiql/plan/v1/operator/rex/RexCallStatic; public static fun rexCase (Lorg/partiql/plan/v1/builder/PlanFactory;Ljava/util/List;Lorg/partiql/plan/v1/operator/rex/Rex;)Lorg/partiql/plan/v1/operator/rex/RexCase; public static fun rexCase (Lorg/partiql/plan/v1/builder/PlanFactory;Lorg/partiql/plan/v1/operator/rex/Rex;Ljava/util/List;Lorg/partiql/plan/v1/operator/rex/Rex;)Lorg/partiql/plan/v1/operator/rex/RexCase; public static fun rexCast (Lorg/partiql/plan/v1/builder/PlanFactory;Lorg/partiql/plan/v1/operator/rex/Rex;Lorg/partiql/types/PType;)Lorg/partiql/plan/v1/operator/rex/RexCast; @@ -2740,7 +2740,7 @@ public final class org/partiql/plan/v1/operator/rel/RelAggregate$DefaultImpls { } public abstract interface class org/partiql/plan/v1/operator/rel/RelAggregateCall { - public abstract fun getAgg ()Lorg/partiql/spi/fn/Agg; + public abstract fun getAgg ()Lorg/partiql/spi/fn/Aggregation; public abstract fun getArgs ()Ljava/util/List; public abstract fun isDistinct ()Z } @@ -3165,7 +3165,7 @@ public abstract interface class org/partiql/plan/v1/operator/rex/RexCallStatic : public abstract fun accept (Lorg/partiql/plan/v1/operator/rex/RexVisitor;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun getArgs ()Ljava/util/List; public abstract fun getChildren ()Ljava/util/Collection; - public abstract fun getFunction ()Lorg/partiql/spi/fn/Fn; + public abstract fun getFunction ()Lorg/partiql/spi/fn/Function; } public final class org/partiql/plan/v1/operator/rex/RexCallStatic$DefaultImpls { diff --git a/partiql-plan/src/main/kotlin/org/partiql/plan/v1/builder/PlanFactory.kt b/partiql-plan/src/main/kotlin/org/partiql/plan/v1/builder/PlanFactory.kt index 23ba1bd0a3..e9c1f8ca9a 100644 --- a/partiql-plan/src/main/kotlin/org/partiql/plan/v1/builder/PlanFactory.kt +++ b/partiql-plan/src/main/kotlin/org/partiql/plan/v1/builder/PlanFactory.kt @@ -90,8 +90,8 @@ import org.partiql.plan.v1.operator.rex.RexTableImpl import org.partiql.plan.v1.operator.rex.RexVar import org.partiql.plan.v1.operator.rex.RexVarImpl import org.partiql.planner.catalog.Table -import org.partiql.spi.fn.Agg -import org.partiql.spi.fn.Fn +import org.partiql.spi.fn.Aggregation +import org.partiql.spi.fn.Function import org.partiql.types.PType /** @@ -134,7 +134,7 @@ public interface PlanFactory { * @param isDistinct * @return */ - public fun relAggregateCall(aggregation: Agg, args: List, isDistinct: Boolean = false): RelAggregateCall = + public fun relAggregateCall(aggregation: Aggregation, args: List, isDistinct: Boolean = false): RelAggregateCall = RelAggregateCallImpl(aggregation, args, isDistinct) /** @@ -347,7 +347,7 @@ public interface PlanFactory { * @param args * @return */ - public fun rexCall(function: Fn, args: List): RexCallStatic = RexCallStaticImpl(function, args) + public fun rexCall(function: Function, args: List): RexCallStatic = RexCallStaticImpl(function, args) /** * Create a [RexCallDynamic] instance. @@ -356,7 +356,7 @@ public interface PlanFactory { * @param args * @return */ - public fun rexCall(functions: List, args: List): RexCallDynamic = RexCallDynamicImpl(functions, args) + public fun rexCall(functions: List, args: List): RexCallDynamic = RexCallDynamicImpl(functions, args) /** * Create a [RexCase] instance for a searched case-when. diff --git a/partiql-plan/src/main/kotlin/org/partiql/plan/v1/operator/rel/RelAggregateCall.kt b/partiql-plan/src/main/kotlin/org/partiql/plan/v1/operator/rel/RelAggregateCall.kt index 08a07adf03..76f459e97c 100644 --- a/partiql-plan/src/main/kotlin/org/partiql/plan/v1/operator/rel/RelAggregateCall.kt +++ b/partiql-plan/src/main/kotlin/org/partiql/plan/v1/operator/rel/RelAggregateCall.kt @@ -1,14 +1,14 @@ package org.partiql.plan.v1.operator.rel import org.partiql.plan.v1.operator.rex.Rex -import org.partiql.spi.fn.Agg +import org.partiql.spi.fn.Aggregation /** * TODO DOCUMENTATION */ public interface RelAggregateCall { - public fun getAgg(): Agg + public fun getAgg(): Aggregation public fun getArgs(): List @@ -25,11 +25,11 @@ public interface RelAggregateCall { * @property isDistinct */ internal class RelAggregateCallImpl( - private var agg: Agg, + private var agg: Aggregation, private var args: List, private var isDistinct: Boolean, ) : RelAggregateCall { - override fun getAgg(): Agg = agg + override fun getAgg(): Aggregation = agg override fun getArgs(): List = args override fun isDistinct(): Boolean = isDistinct } diff --git a/partiql-plan/src/main/kotlin/org/partiql/plan/v1/operator/rex/RexCallDynamic.kt b/partiql-plan/src/main/kotlin/org/partiql/plan/v1/operator/rex/RexCallDynamic.kt index b48507d96f..390aab9a7e 100644 --- a/partiql-plan/src/main/kotlin/org/partiql/plan/v1/operator/rex/RexCallDynamic.kt +++ b/partiql-plan/src/main/kotlin/org/partiql/plan/v1/operator/rex/RexCallDynamic.kt @@ -1,6 +1,6 @@ package org.partiql.plan.v1.operator.rex -import org.partiql.spi.fn.Fn +import org.partiql.spi.fn.Function import org.partiql.types.PType /** @@ -13,7 +13,7 @@ public interface RexCallDynamic : Rex { * * @return */ - public fun getFunctions(): List + public fun getFunctions(): List /** * Returns the list of function arguments. @@ -28,13 +28,13 @@ public interface RexCallDynamic : Rex { /** * Default [RexCallDynamic] implementation meant for extension. */ -internal class RexCallDynamicImpl(functions: List, args: List) : RexCallDynamic { +internal class RexCallDynamicImpl(functions: List, args: List) : RexCallDynamic { // DO NOT USE FINAL private var _functions = functions private var _args = args - override fun getFunctions(): List = _functions + override fun getFunctions(): List = _functions override fun getArgs(): List = _args diff --git a/partiql-plan/src/main/kotlin/org/partiql/plan/v1/operator/rex/RexCallStatic.kt b/partiql-plan/src/main/kotlin/org/partiql/plan/v1/operator/rex/RexCallStatic.kt index 78822813ea..7af8229593 100644 --- a/partiql-plan/src/main/kotlin/org/partiql/plan/v1/operator/rex/RexCallStatic.kt +++ b/partiql-plan/src/main/kotlin/org/partiql/plan/v1/operator/rex/RexCallStatic.kt @@ -1,6 +1,6 @@ package org.partiql.plan.v1.operator.rex -import org.partiql.spi.fn.Fn +import org.partiql.spi.fn.Function import org.partiql.types.PType /** @@ -13,7 +13,7 @@ public interface RexCallStatic : Rex { * * @return */ - public fun getFunction(): Fn + public fun getFunction(): Function /** * Returns the list of function arguments. @@ -28,13 +28,13 @@ public interface RexCallStatic : Rex { /** * Default [RexCallStatic] implementation meant for extension. */ -internal class RexCallStaticImpl(function: Fn, args: List) : RexCallStatic { +internal class RexCallStaticImpl(function: Function, args: List) : RexCallStatic { // DO NOT USE FINAL private var _function = function private var _args = args - override fun getFunction(): Fn = _function + override fun getFunction(): Function = _function override fun getArgs(): List = _args diff --git a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/Env.kt b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/Env.kt index d39805b378..d744a278a9 100644 --- a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/Env.kt +++ b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/Env.kt @@ -56,7 +56,6 @@ internal class Env(private val session: Session) { * 1. Lookup in current catalog and namespace. * 2. Lookup as a schema-qualified identifier. * 3. Lookup as a catalog-qualified identifier. - * */ fun resolveTable(identifier: Identifier): Rex? { @@ -98,22 +97,38 @@ internal class Env(private val session: Session) { return if (tail.isEmpty()) root else root.toPath(tail) } + /** + * TODO leverage session PATH. + * + * @param identifier + * @param args + * @return + */ fun resolveFn(identifier: Identifier, args: List): Rex? { - // Assume all functions are defined in the current catalog and reject qualified routine names. + + // Reject qualified routine names. if (identifier.hasQualifier()) { error("Qualified functions are not supported.") } - val catalog = session.getCatalog() - val name = identifier.getIdentifier().getText().lowercase() - // Invoke existing function resolution logic - val variants = fns.lookupFn(name) ?: return null + + // 1. Search in the current catalog and namespace. + val catalog = default + val name = identifier.getIdentifier().getText().lowercase() // CASE-NORMALIZED LOWER + val variants = catalog.getFunctions(session, name).map { it.signature } + if (variants.isEmpty()) { + return null + } + + // 2. Search along the PATH. + // TODO + val match = FnResolver.resolve(variants, args.map { it.type }) // If Type mismatch, then we return a missingOp whose trace is all possible candidates. if (match == null) { val candidates = variants.map { fnSignature -> rexOpCallDynamicCandidate( fn = refFn( - catalog = catalog, + catalog = catalog.getName(), name = Name.of(name), signature = fnSignature ), @@ -132,7 +147,7 @@ internal class Env(private val session: Session) { // Create an internal typed reference for every candidate rexOpCallDynamicCandidate( fn = refFn( - catalog = catalog, + catalog = catalog.getName(), name = Name.of(name), signature = it.signature, ), @@ -145,7 +160,7 @@ internal class Env(private val session: Session) { is FnMatch.Static -> { // Create an internal typed reference val ref = refFn( - catalog = catalog, + catalog = catalog.getName(), name = Name.of(name), signature = match.signature, ) @@ -164,16 +179,25 @@ internal class Env(private val session: Session) { fun resolveAgg(path: String, setQuantifier: SetQuantifier, args: List): Rel.Op.Aggregate.Call.Resolved? { // TODO: Eventually, do we want to support sensitive lookup? With a path? - val catalog = session.getCatalog() + + // 1. Search in the current catalog and namespace. + val catalog = default val name = path.lowercase() + val candidates = catalog.getAggregations(session, name).map { it.signature } + if (candidates.isEmpty()) { + return null + } + + // 2. Search along the PATH. + // TODO + // Invoke existing function resolution logic - val candidates = fns.lookupAgg(name) ?: return null - val parameters = args.mapIndexed { i, arg -> arg.type } + val parameters = args.map { it.type } val match = match(candidates, parameters) ?: return null val agg = match.first val mapping = match.second // Create an internal typed reference - val ref = refAgg(catalog, Name.of(name), agg) + val ref = refAgg(catalog.getName(), Name.of(name), agg) // Apply the coercions as explicit casts val coercions: List = args.mapIndexed { i, arg -> when (val cast = mapping[i]) { @@ -249,7 +273,7 @@ internal class Env(private val session: Session) { for (i in args.indices) { val a = args[i] val p = parameters[i] - if (p.type.kind != Kind.DYNAMIC && a != p.type) return false + if (p.getType().kind != Kind.DYNAMIC && a != p.getType()) return false } return true } @@ -267,11 +291,11 @@ internal class Env(private val session: Session) { val p = parameters[i] when { // 1. Exact match - arg == p.type -> continue + arg == p.getType() -> continue // 2. Match ANY, no coercion needed - p.type.kind == Kind.DYNAMIC -> continue + p.getType().kind == Kind.DYNAMIC -> continue // 3. Check for a coercion - else -> when (val coercion = Coercions.get(arg, p.type)) { + else -> when (val coercion = Coercions.get(arg, p.getType())) { null -> return null // short-circuit else -> mapping[i] = coercion } diff --git a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnComparator.kt b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnComparator.kt index 15c23a8af7..08642ad891 100644 --- a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnComparator.kt +++ b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnComparator.kt @@ -1,7 +1,7 @@ package org.partiql.planner.internal -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Parameter import org.partiql.types.PType import org.partiql.types.PType.Kind @@ -29,8 +29,8 @@ internal object FnComparator : Comparator { return 0 } - private fun FnParameter.compareTo(other: FnParameter): Int = - comparePrecedence(this.type, other.type) + private fun Parameter.compareTo(other: Parameter): Int = + comparePrecedence(this.getType(), other.getType()) private fun comparePrecedence(t1: PType, t2: PType): Int { if (t1 == t2) return 0 diff --git a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnResolver.kt b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnResolver.kt index 66b2908548..a1054daa14 100644 --- a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnResolver.kt +++ b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnResolver.kt @@ -120,7 +120,7 @@ internal object FnResolver { for (i in args.indices) { val a = args[i] val p = parameters[i] - if (a != p.type) return false + if (a != p.getType()) return false } return true } @@ -139,19 +139,19 @@ internal object FnResolver { val p = parameters[i] when { // 1. Exact match - arg == p.type -> { + arg == p.getType() -> { exactInputTypes++ continue } // 2. Match ANY parameter, no coercion needed - p.type.kind == Kind.DYNAMIC -> continue + p.getType().kind == Kind.DYNAMIC -> continue arg.kind == Kind.UNKNOWN -> continue // 3. Allow for ANY arguments arg.kind == Kind.DYNAMIC -> { - mapping[i] = Ref.Cast(arg, p.type.toCType(), Ref.Cast.Safety.UNSAFE, true) + mapping[i] = Ref.Cast(arg, p.getType().toCType(), Ref.Cast.Safety.UNSAFE, true) } // 4. Check for a coercion - else -> when (val coercion = Coercions.get(arg, p.type)) { + else -> when (val coercion = Coercions.get(arg, p.getType())) { null -> return null // short-circuit else -> mapping[i] = coercion } diff --git a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/PlanTransformV1.kt b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/PlanTransformV1.kt index bcbb8078dc..94fd707cab 100644 --- a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/PlanTransformV1.kt +++ b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/PlanTransformV1.kt @@ -23,8 +23,8 @@ import org.partiql.planner.internal.ProblemGenerator import org.partiql.planner.internal.ir.Ref import org.partiql.planner.internal.ir.SetQuantifier import org.partiql.planner.internal.ir.visitor.PlanBaseVisitor -import org.partiql.spi.fn.Agg -import org.partiql.spi.fn.Fn +import org.partiql.spi.fn.Aggregation +import org.partiql.spi.fn.Function import org.partiql.spi.fn.SqlFnProvider import org.partiql.types.Field import org.partiql.types.PType @@ -441,7 +441,7 @@ internal class PlanTransformV1(private val flags: Set) { /** * TODO TEMPORARY! */ - private fun getFn(ref: Ref.Fn): Fn { + private fun getFn(ref: Ref.Fn): Function { val specific = ref.signature.specific return SqlFnProvider.getFn(specific) ?: error("Function not found: $specific") } @@ -449,7 +449,7 @@ internal class PlanTransformV1(private val flags: Set) { /** * TODO TEMPORARY! */ - private fun getAgg(ref: Ref.Agg): Agg { + private fun getAgg(ref: Ref.Agg): Aggregation { val specific = ref.signature.specific return SqlFnProvider.getAgg(specific) ?: error("Aggregation not found: $specific") } diff --git a/partiql-planner/src/test/kotlin/org/partiql/planner/internal/typer/FnResolverTest.kt b/partiql-planner/src/test/kotlin/org/partiql/planner/internal/typer/FnResolverTest.kt index b9d9eb74c1..058e83cf7b 100644 --- a/partiql-planner/src/test/kotlin/org/partiql/planner/internal/typer/FnResolverTest.kt +++ b/partiql-planner/src/test/kotlin/org/partiql/planner/internal/typer/FnResolverTest.kt @@ -5,8 +5,8 @@ import org.junit.jupiter.api.fail import org.partiql.planner.internal.FnMatch import org.partiql.planner.internal.FnResolver import org.partiql.planner.internal.typer.PlanTyper.Companion.toCType -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Parameter import org.partiql.types.PType /** @@ -24,8 +24,8 @@ class FnResolverTest { name = "plus", returns = PType.doublePrecision(), parameters = listOf( - FnParameter("arg-0", PType.doublePrecision()), - FnParameter("arg-1", PType.doublePrecision()), + Parameter("arg-0", PType.doublePrecision()), + Parameter("arg-1", PType.doublePrecision()), ), ) ) @@ -42,8 +42,8 @@ class FnResolverTest { name = "split", returns = PType.array(), parameters = listOf( - FnParameter("value", PType.string()), - FnParameter("delimiter", PType.string()), + Parameter("value", PType.string()), + Parameter("delimiter", PType.string()), ), isNullable = false, ) diff --git a/partiql-spi/api/partiql-spi.api b/partiql-spi/api/partiql-spi.api index b36a9b9165..2ad4f0b3ef 100644 --- a/partiql-spi/api/partiql-spi.api +++ b/partiql-spi/api/partiql-spi.api @@ -338,7 +338,8 @@ public abstract interface class org/partiql/eval/value/Field { } public abstract interface class org/partiql/planner/catalog/Catalog { - public abstract fun getFunctions (Lorg/partiql/planner/catalog/Session;Lorg/partiql/planner/catalog/Name;)Ljava/util/Collection; + public abstract fun getAggregations (Lorg/partiql/planner/catalog/Session;Ljava/lang/String;)Ljava/util/Collection; + public abstract fun getFunctions (Lorg/partiql/planner/catalog/Session;Ljava/lang/String;)Ljava/util/Collection; public abstract fun getName ()Ljava/lang/String; public abstract fun getTable (Lorg/partiql/planner/catalog/Session;Lorg/partiql/planner/catalog/Name;)Lorg/partiql/planner/catalog/Table; public abstract fun getTableHandle (Lorg/partiql/planner/catalog/Session;Lorg/partiql/planner/catalog/Identifier;)Lorg/partiql/planner/catalog/Table$Handle; @@ -349,7 +350,8 @@ public abstract interface class org/partiql/planner/catalog/Catalog { } public final class org/partiql/planner/catalog/Catalog$DefaultImpls { - public static fun getFunctions (Lorg/partiql/planner/catalog/Catalog;Lorg/partiql/planner/catalog/Session;Lorg/partiql/planner/catalog/Name;)Ljava/util/Collection; + public static fun getAggregations (Lorg/partiql/planner/catalog/Catalog;Lorg/partiql/planner/catalog/Session;Ljava/lang/String;)Ljava/util/Collection; + public static fun getFunctions (Lorg/partiql/planner/catalog/Catalog;Lorg/partiql/planner/catalog/Session;Ljava/lang/String;)Ljava/util/Collection; public static fun getTable (Lorg/partiql/planner/catalog/Catalog;Lorg/partiql/planner/catalog/Session;Lorg/partiql/planner/catalog/Name;)Lorg/partiql/planner/catalog/Table; public static fun getTableHandle (Lorg/partiql/planner/catalog/Catalog;Lorg/partiql/planner/catalog/Session;Lorg/partiql/planner/catalog/Identifier;)Lorg/partiql/planner/catalog/Table$Handle; public static fun listNamespaces (Lorg/partiql/planner/catalog/Catalog;Lorg/partiql/planner/catalog/Session;)Ljava/util/Collection; @@ -384,64 +386,6 @@ public final class org/partiql/planner/catalog/Catalogs$DefaultImpls { public static fun listCatalogs (Lorg/partiql/planner/catalog/Catalogs;)Ljava/util/Collection; } -public abstract interface class org/partiql/planner/catalog/Function { - public static final field Companion Lorg/partiql/planner/catalog/Function$Companion; - public static fun aggregation (Ljava/lang/String;Ljava/util/Collection;Lorg/partiql/types/PType$Kind;)Lorg/partiql/planner/catalog/Function$Aggregation; - public abstract fun computeReturnType (Ljava/util/List;)Lorg/partiql/types/PType; - public abstract fun getName ()Ljava/lang/String; - public abstract fun getParameters ()[Lorg/partiql/planner/catalog/Function$Parameter; - public abstract fun getReturnType ()Lorg/partiql/types/PType$Kind; - public abstract fun getSpecific ()Ljava/lang/String; - public static fun scalar (Ljava/lang/String;Ljava/util/Collection;Lorg/partiql/types/PType$Kind;)Lorg/partiql/planner/catalog/Function$Scalar; -} - -public abstract interface class org/partiql/planner/catalog/Function$Aggregation : org/partiql/planner/catalog/Function { - public abstract fun getSpecific ()Ljava/lang/String; - public abstract fun isDecomposable ()Z -} - -public final class org/partiql/planner/catalog/Function$Aggregation$DefaultImpls { - public static fun computeReturnType (Lorg/partiql/planner/catalog/Function$Aggregation;Ljava/util/List;)Lorg/partiql/types/PType; - public static fun getParameters (Lorg/partiql/planner/catalog/Function$Aggregation;)[Lorg/partiql/planner/catalog/Function$Parameter; - public static fun getSpecific (Lorg/partiql/planner/catalog/Function$Aggregation;)Ljava/lang/String; - public static fun isDecomposable (Lorg/partiql/planner/catalog/Function$Aggregation;)Z -} - -public final class org/partiql/planner/catalog/Function$Companion { - public final fun aggregation (Ljava/lang/String;Ljava/util/Collection;Lorg/partiql/types/PType$Kind;)Lorg/partiql/planner/catalog/Function$Aggregation; - public final fun scalar (Ljava/lang/String;Ljava/util/Collection;Lorg/partiql/types/PType$Kind;)Lorg/partiql/planner/catalog/Function$Scalar; -} - -public final class org/partiql/planner/catalog/Function$DefaultImpls { - public static fun computeReturnType (Lorg/partiql/planner/catalog/Function;Ljava/util/List;)Lorg/partiql/types/PType; - public static fun getParameters (Lorg/partiql/planner/catalog/Function;)[Lorg/partiql/planner/catalog/Function$Parameter; -} - -public final class org/partiql/planner/catalog/Function$Parameter { - public final field name Ljava/lang/String; - public final field type Lorg/partiql/types/PType$Kind; - public fun (Ljava/lang/String;Lorg/partiql/types/PType$Kind;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Lorg/partiql/types/PType$Kind; - public final fun copy (Ljava/lang/String;Lorg/partiql/types/PType$Kind;)Lorg/partiql/planner/catalog/Function$Parameter; - public static synthetic fun copy$default (Lorg/partiql/planner/catalog/Function$Parameter;Ljava/lang/String;Lorg/partiql/types/PType$Kind;ILjava/lang/Object;)Lorg/partiql/planner/catalog/Function$Parameter; - public fun equals (Ljava/lang/Object;)Z - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public abstract interface class org/partiql/planner/catalog/Function$Scalar : org/partiql/planner/catalog/Function { - public abstract fun getSpecific ()Ljava/lang/String; - public abstract fun isNullCall ()Z -} - -public final class org/partiql/planner/catalog/Function$Scalar$DefaultImpls { - public static fun computeReturnType (Lorg/partiql/planner/catalog/Function$Scalar;Ljava/util/List;)Lorg/partiql/types/PType; - public static fun getParameters (Lorg/partiql/planner/catalog/Function$Scalar;)[Lorg/partiql/planner/catalog/Function$Parameter; - public static fun getSpecific (Lorg/partiql/planner/catalog/Function$Scalar;)Ljava/lang/String; - public static fun isNullCall (Lorg/partiql/planner/catalog/Function$Scalar;)Z -} - public final class org/partiql/planner/catalog/Identifier : java/lang/Iterable, kotlin/jvm/internal/markers/KMappedMarker { public static final field Companion Lorg/partiql/planner/catalog/Identifier$Companion; public synthetic fun ([Lorg/partiql/planner/catalog/Identifier$Part;Lorg/partiql/planner/catalog/Identifier$Part;Lkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -651,16 +595,6 @@ public final class org/partiql/spi/connector/Connector$Factory$DefaultImpls { public static synthetic fun create$default (Lorg/partiql/spi/connector/Connector$Factory;Lcom/amazon/ionelement/api/StructElement;ILjava/lang/Object;)Lorg/partiql/spi/connector/Connector; } -public abstract interface class org/partiql/spi/fn/Agg { - public abstract fun accumulator ()Lorg/partiql/spi/fn/Agg$Accumulator; - public abstract fun getSignature ()Lorg/partiql/spi/fn/AggSignature; -} - -public abstract interface class org/partiql/spi/fn/Agg$Accumulator { - public abstract fun next ([Lorg/partiql/eval/value/Datum;)V - public abstract fun value ()Lorg/partiql/eval/value/Datum; -} - public final class org/partiql/spi/fn/AggSignature { public final field description Ljava/lang/String; public final field isDecomposable Z @@ -676,22 +610,27 @@ public final class org/partiql/spi/fn/AggSignature { public fun toString ()Ljava/lang/String; } -public abstract interface class org/partiql/spi/fn/Fn { - public abstract fun getSignature ()Lorg/partiql/spi/fn/FnSignature; - public abstract fun invoke ([Lorg/partiql/eval/value/Datum;)Lorg/partiql/eval/value/Datum; +public abstract interface class org/partiql/spi/fn/Aggregation : org/partiql/spi/fn/Routine { + public abstract fun accumulator ()Lorg/partiql/spi/fn/Aggregation$Accumulator; + public abstract fun getName ()Ljava/lang/String; + public abstract fun getParameters ()[Lorg/partiql/spi/fn/Parameter; + public abstract fun getReturnType ()Lorg/partiql/types/PType; + public abstract fun getSignature ()Lorg/partiql/spi/fn/AggSignature; + public abstract fun getSpecific ()Ljava/lang/String; + public abstract fun isDecomposable ()Z } -public final class org/partiql/spi/fn/FnParameter { - public fun (Ljava/lang/String;Lorg/partiql/types/PType;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Lorg/partiql/types/PType; - public final fun copy (Ljava/lang/String;Lorg/partiql/types/PType;)Lorg/partiql/spi/fn/FnParameter; - public static synthetic fun copy$default (Lorg/partiql/spi/fn/FnParameter;Ljava/lang/String;Lorg/partiql/types/PType;ILjava/lang/Object;)Lorg/partiql/spi/fn/FnParameter; - public fun equals (Ljava/lang/Object;)Z - public final fun getName ()Ljava/lang/String; - public final fun getType ()Lorg/partiql/types/PType; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; +public abstract interface class org/partiql/spi/fn/Aggregation$Accumulator { + public abstract fun next ([Lorg/partiql/eval/value/Datum;)V + public abstract fun value ()Lorg/partiql/eval/value/Datum; +} + +public final class org/partiql/spi/fn/Aggregation$DefaultImpls { + public static fun getName (Lorg/partiql/spi/fn/Aggregation;)Ljava/lang/String; + public static fun getParameters (Lorg/partiql/spi/fn/Aggregation;)[Lorg/partiql/spi/fn/Parameter; + public static fun getReturnType (Lorg/partiql/spi/fn/Aggregation;)Lorg/partiql/types/PType; + public static fun getSpecific (Lorg/partiql/spi/fn/Aggregation;)Ljava/lang/String; + public static fun isDecomposable (Lorg/partiql/spi/fn/Aggregation;)Z } public final class org/partiql/spi/fn/FnSignature { @@ -720,16 +659,48 @@ public final class org/partiql/spi/fn/FnSignature { public fun equals (Ljava/lang/Object;)Z public final fun getSpecific ()Ljava/lang/String; public fun hashCode ()I - public final fun sql ()Ljava/lang/String; public fun toString ()Ljava/lang/String; } +public abstract interface class org/partiql/spi/fn/Function : org/partiql/spi/fn/Routine { + public abstract fun getName ()Ljava/lang/String; + public abstract fun getParameters ()[Lorg/partiql/spi/fn/Parameter; + public abstract fun getReturnType ()Lorg/partiql/types/PType; + public abstract fun getSignature ()Lorg/partiql/spi/fn/FnSignature; + public abstract fun getSpecific ()Ljava/lang/String; + public abstract fun invoke ([Lorg/partiql/eval/value/Datum;)Lorg/partiql/eval/value/Datum; + public abstract fun isNullCall ()Z +} + +public final class org/partiql/spi/fn/Function$DefaultImpls { + public static fun getName (Lorg/partiql/spi/fn/Function;)Ljava/lang/String; + public static fun getParameters (Lorg/partiql/spi/fn/Function;)[Lorg/partiql/spi/fn/Parameter; + public static fun getReturnType (Lorg/partiql/spi/fn/Function;)Lorg/partiql/types/PType; + public static fun getSpecific (Lorg/partiql/spi/fn/Function;)Ljava/lang/String; + public static fun isNullCall (Lorg/partiql/spi/fn/Function;)Z +} + +public final class org/partiql/spi/fn/Parameter { + public fun (Ljava/lang/String;Lorg/partiql/types/PType;)V + public final fun getName ()Ljava/lang/String; + public final fun getType ()Lorg/partiql/types/PType; +} + +public abstract interface class org/partiql/spi/fn/Routine { + public abstract fun getName ()Ljava/lang/String; + public abstract fun getParameters ()[Lorg/partiql/spi/fn/Parameter; + public abstract fun getReturnType ()Lorg/partiql/types/PType; + public abstract fun getSpecific ()Ljava/lang/String; +} + +public final class org/partiql/spi/fn/Routine$DefaultImpls { + public static fun getParameters (Lorg/partiql/spi/fn/Routine;)[Lorg/partiql/spi/fn/Parameter; +} + public final class org/partiql/spi/fn/SqlFnProvider { public static final field INSTANCE Lorg/partiql/spi/fn/SqlFnProvider; - public final fun getAgg (Ljava/lang/String;)Lorg/partiql/spi/fn/Agg; - public final fun getFn (Ljava/lang/String;)Lorg/partiql/spi/fn/Fn; - public final fun lookupAgg (Ljava/lang/String;)Ljava/util/List; - public final fun lookupFn (Ljava/lang/String;)Ljava/util/List; + public final fun getAgg (Ljava/lang/String;)Lorg/partiql/spi/fn/Aggregation; + public final fun getFn (Ljava/lang/String;)Lorg/partiql/spi/fn/Function; } public abstract class org/partiql/value/BagValue : org/partiql/value/CollectionValue { diff --git a/partiql-spi/src/main/kotlin/org/partiql/planner/catalog/Catalog.kt b/partiql-spi/src/main/kotlin/org/partiql/planner/catalog/Catalog.kt index a094835b95..533a230af4 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/planner/catalog/Catalog.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/planner/catalog/Catalog.kt @@ -1,5 +1,9 @@ package org.partiql.planner.catalog +import org.partiql.spi.fn.Aggregation +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.SqlFnProvider + /** * Catalog interface for access to tables and routines. * @@ -60,13 +64,12 @@ public interface Catalog { public fun listNamespaces(session: Session, namespace: Namespace): Collection = emptyList() /** - * Get a routine's variants by name; the default implementation is backed by the SQL-99 builtins. + * Returns a collection of scalar functions in this catalog with the given name, or an empty list if none. + */ + public fun getFunctions(session: Session, name: String): Collection = SqlFnProvider.lookupFn(name) + + /** + * Returns a collection of aggregation functions in this catalog with the given name, or an empty list if none. */ - public fun getFunctions(session: Session, name: Name): Collection { - // if (name.hasNamespace()) { - // error("The default catalog implementation does not support namespaced functions, found: $name") - // } - // return SqlFunctions.getFunctions(name.getName()) - error("Catalog functions are not implemented.") - } + public fun getAggregations(session: Session, name: String): Collection = SqlFnProvider.lookupAgg(name) } diff --git a/partiql-spi/src/main/kotlin/org/partiql/planner/catalog/Function.kt b/partiql-spi/src/main/kotlin/org/partiql/planner/catalog/Function.kt deleted file mode 100644 index 87116312c1..0000000000 --- a/partiql-spi/src/main/kotlin/org/partiql/planner/catalog/Function.kt +++ /dev/null @@ -1,115 +0,0 @@ -package org.partiql.planner.catalog - -import org.partiql.planner.internal.SqlTypes -import org.partiql.types.PType - -/** - * A [Function] is a PartiQL-routine callable from an expression context. - */ -public sealed interface Function { - - /** - * The routine name. Required. - */ - public fun getName(): String - - /** - * The formal argument definitions. Optional. - */ - public fun getParameters(): Array = DEFAULT_PARAMETERS - - /** - * The function return type. Required. - */ - public fun getReturnType(): PType.Kind - - /** - * Compute a [PType] from the given arguments. - */ - public fun computeReturnType(args: List): PType = SqlTypes.from(getReturnType()) - - /** - * !! DO NOT OVERRIDE !! - */ - public fun getSpecific(): String - - /** - * Represents an SQL row-value expression call. - */ - public interface Scalar : Function { - - /** - * SQL NULL CALL -> RETURNS NULL ON NULL INPUT - */ - public fun isNullCall(): Boolean = true - - /** - * !! DO NOT OVERRIDE !! - */ - public override fun getSpecific(): String { - val name = getName().uppercase() - val parameters = getParameters().joinToString("__") { it.type.name } - val returnType = getReturnType().name - return "FN_${name}___${parameters}___$returnType" - } - } - - /** - * Represents an SQL table-value expression call. - */ - public interface Aggregation : Function { - - public fun isDecomposable(): Boolean = true - - /** - * !! DO NOT OVERRIDE !! - */ - public override fun getSpecific(): String { - val name = getName() - val parameters = getParameters().joinToString("__") { it.type.name } - val returnType = getReturnType().name - return "AGG_${name}___${parameters}___$returnType" - } - } - - /** - * [Parameter] is a formal argument's definition. - * - * @property name - * @property type - */ - public data class Parameter( - @JvmField public val name: String, - @JvmField public val type: PType.Kind, - ) - - /** - * Memoized defaults. - */ - public companion object { - - private val DEFAULT_PARAMETERS = emptyArray() - - @JvmStatic - public fun scalar( - name: String, - parameters: Collection, - returnType: PType.Kind, - ): Scalar = object : Scalar { - override fun getName(): String = name - override fun getParameters(): Array = parameters.toTypedArray() - override fun getReturnType(): PType.Kind = returnType - } - - @JvmStatic - public fun aggregation( - name: String, - parameters: Collection, - returnType: PType.Kind, - ): Aggregation = object : Aggregation { - override fun getName(): String = name - override fun getParameters(): Array = parameters.toTypedArray() - override fun getReturnType(): PType.Kind = returnType - } - } -} diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/AggSignature.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/AggSignature.kt index 848781ad3f..5f51f50abf 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/AggSignature.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/AggSignature.kt @@ -11,7 +11,7 @@ import org.partiql.types.PType public class AggSignature( @JvmField public val name: String, @JvmField public val returns: PType, - @JvmField public val parameters: List, + @JvmField public val parameters: List, @JvmField public val description: String? = null, @JvmField public val isNullable: Boolean = true, @JvmField public val isDecomposable: Boolean = true, @@ -23,7 +23,7 @@ public class AggSignature( public val specific: String = buildString { append(name.uppercase()) append("__") - append(parameters.joinToString("_") { it.type.toString() }) + append(parameters.joinToString("_") { it.getType().kind.name }) append("__") append(returns) } @@ -50,7 +50,7 @@ public class AggSignature( for (i in parameters.indices) { val p1 = parameters[i] val p2 = other.parameters[i] - if (p1.type != p2.type) return false + if (p1.getType() != p2.getType()) return false } return true } diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Agg.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Aggregation.kt similarity index 50% rename from partiql-spi/src/main/kotlin/org/partiql/spi/fn/Agg.kt rename to partiql-spi/src/main/kotlin/org/partiql/spi/fn/Aggregation.kt index c297f7585a..a7bf62993c 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Agg.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Aggregation.kt @@ -1,20 +1,43 @@ package org.partiql.spi.fn import org.partiql.eval.value.Datum +import org.partiql.types.PType /** * Represents an SQL table-value expression call. */ -public interface Agg { +public interface Aggregation : Routine { /** + * TODO REMOVE ME !! + * * Aggregation function signature. */ public val signature: AggSignature + override fun getName(): String = signature.name + + override fun getParameters(): Array = signature.parameters.toTypedArray() + + override fun getReturnType(): PType = signature.returns + + public fun isDecomposable(): Boolean = signature.isDecomposable + + /** + * !! DO NOT OVERRIDE !! + */ + public override fun getSpecific(): String { + val name = getName() + val parameters = getParameters().joinToString("__") { it.getType().kind.name } + val returnType = getReturnType().kind.name + return "AGG_${name}___${parameters}___$returnType" + } + /** * Instantiates a stateful accumulator for this aggregation function. * + * TODO add `args: Array` parameter. + * * @return */ public fun accumulator(): Accumulator diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Fn.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Fn.kt deleted file mode 100644 index d204f26f7d..0000000000 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Fn.kt +++ /dev/null @@ -1,22 +0,0 @@ -package org.partiql.spi.fn - -import org.partiql.eval.value.Datum - -/** - * Represents a scalar function (SQL row-value call expression). - */ -public interface Fn { - - /** - * Scalar function signature. - */ - public val signature: FnSignature - - /** - * Invoke the function with the given arguments. - * - * @param args the arguments to the function - * @return the result of the function - */ - public fun invoke(args: Array): Datum -} diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/FnParameter.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/FnParameter.kt deleted file mode 100644 index 4a98b78209..0000000000 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/FnParameter.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.spi.fn - -import org.partiql.types.PType - -/** - * Parameter of an [FnSignature]. - * - * @property name A human-readable name to help clarify its use. - * @property type The parameter's PartiQL type. - */ -public data class FnParameter( - public val name: String, - public val type: PType, -) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/FnSignature.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/FnSignature.kt index 9bcd82375b..1edaf73468 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/FnSignature.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/FnSignature.kt @@ -3,6 +3,9 @@ package org.partiql.spi.fn import org.partiql.types.PType /** + * + * TODO THIS WILL BE REPLACED BY THE `Function` INTERFACE IN A SUBSEQUENT PR. + * Right now the planner has a dependency on the signature which needs to be removed. * * The signature includes the names of the function (which allows for function overloading), * the return type, a list of parameters, a flag indicating whether the function is deterministic @@ -21,7 +24,7 @@ import org.partiql.types.PType public data class FnSignature( @JvmField public val name: String, @JvmField public val returns: PType, - @JvmField public val parameters: List, + @JvmField public val parameters: List, @JvmField public val description: String? = null, @JvmField public val isDeterministic: Boolean = true, @JvmField public val isNullable: Boolean = true, @@ -36,55 +39,13 @@ public data class FnSignature( public val specific: String = buildString { append(name.uppercase()) append("__") - append(parameters.joinToString("_") { it.type.toString() }) + append(parameters.joinToString("_") { it.getType().kind.toString() }) append("__") append(returns) } /** * Use the symbolic name for easy debugging - * - * @return */ override fun toString(): String = specific - - // Logic for writing a [FunctionSignature] using SQL `CREATE FUNCTION` syntax. - - /** - * SQL-99 p.542 - */ - private val deterministicCharacteristic = when (isDeterministic) { - true -> "DETERMINISTIC" - else -> "NOT DETERMINISTIC" - } - - /** - * SQL-99 p.543 - */ - private val nullCallClause = when (isNullCall) { - true -> "RETURNS NULL ON NULL INPUT" - else -> "CALLED ON NULL INPUT" - } - - public fun sql(): String = buildString { - val fn = name.uppercase() - val indent = " " - append("CREATE FUNCTION \"$fn\" (") - if (parameters.isNotEmpty()) { - val extent = parameters.maxOf { it.name.length } - for (i in parameters.indices) { - val p = parameters[i] - val ws = (extent - p.name.length) + 1 - appendLine() - append(indent).append(p.name.uppercase()).append(" ".repeat(ws)).append(p.type.toString()) - if (i != parameters.size - 1) append(",") - } - } - appendLine(" )") - append(indent).appendLine("RETURNS $returns") - append(indent).appendLine("SPECIFIC $specific") - append(indent).appendLine(deterministicCharacteristic) - append(indent).appendLine(nullCallClause) - append(indent).appendLine("RETURN $fn ( ${parameters.joinToString { it.name.uppercase() }} ) ;") - } } diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Function.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Function.kt new file mode 100644 index 0000000000..83609beaca --- /dev/null +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Function.kt @@ -0,0 +1,48 @@ +package org.partiql.spi.fn + +import org.partiql.eval.value.Datum +import org.partiql.types.PType + +/** + * Represents a scalar function (SQL row-value call expression). + */ +public interface Function : Routine { + + /** + * Scalar function signature. + * + * TODO REMOVE ME + */ + public val signature: FnSignature + + override fun getName(): String = signature.name + + override fun getParameters(): Array = signature.parameters.toTypedArray() + + override fun getReturnType(): PType = signature.returns + + /** + * SQL NULL CALL -> RETURNS NULL ON NULL INPUT + */ + public fun isNullCall(): Boolean = true + + /** + * TODO REPLACE ME WITH `getInstance(args: Array)` which returns an invocable instance of this function. + * + * Invoke the function with the given arguments. Required. + * + * @param args the arguments to the function + * @return the result of the function + */ + public fun invoke(args: Array): Datum + + /** + * !! DO NOT OVERRIDE !! + */ + public override fun getSpecific(): String { + val name = getName().uppercase() + val parameters = getParameters().joinToString("__") { it.getType().kind.name } + val returnType = getReturnType().kind.name + return "FN_${name}___${parameters}___$returnType" + } +} diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Parameter.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Parameter.kt new file mode 100644 index 0000000000..0d3f981f20 --- /dev/null +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Parameter.kt @@ -0,0 +1,21 @@ +package org.partiql.spi.fn + +import org.partiql.types.PType + +/** + * [Parameter] is a formal argument's definition. + * + * @constructor + * Default constructor. + * + * @param name Parameter name used for error reporting, debugging, and documentation. + * @param type Parameter type used for function resolution. + */ +public class Parameter(name: String, type: PType) { + + private var _name: String = name + private var _type: PType = type + + public fun getName(): String = _name + public fun getType(): PType = _type +} diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Routine.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Routine.kt new file mode 100644 index 0000000000..2e64608839 --- /dev/null +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Routine.kt @@ -0,0 +1,29 @@ +package org.partiql.spi.fn + +import org.partiql.types.PType + +/** + * A [Routine] is a PartiQL-routine callable from an expression context. + */ +public interface Routine { + + /** + * The function name. Required. + */ + public fun getName(): String + + /** + * The formal argument definitions. Optional. + */ + public fun getParameters(): Array = emptyArray() + + /** + * The function return type. Required. + */ + public fun getReturnType(): PType + + /** + * TODO REMOVE ME ?? + */ + public fun getSpecific(): String +} diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/SqlBuiltins.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/SqlBuiltins.kt index 4897f32901..91bb0506b5 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/SqlBuiltins.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/SqlBuiltins.kt @@ -4,12 +4,12 @@ package org.partiql.spi.fn import org.partiql.spi.fn.builtins.* /** - * This is where we will register all SQL builtins. For now, we wrap the generated header to keep the diff small. + * This is where we will register all SQL builtins. */ internal object SqlBuiltins { @JvmStatic - val builtins: List = listOf( + val builtins: List = listOf( Fn_ABS__INT8__INT8, Fn_ABS__INT16__INT16, Fn_ABS__INT32__INT32, @@ -407,7 +407,7 @@ internal object SqlBuiltins { ) @JvmStatic - val aggregations: List = listOf( + val aggregations: List = listOf( Agg_ANY__BOOL__BOOL, Agg_AVG__INT8__INT8, Agg_AVG__INT16__INT16, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/SqlFnProvider.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/SqlFnProvider.kt index d5c8b5d0eb..243ac768b1 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/SqlFnProvider.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/SqlFnProvider.kt @@ -15,24 +15,21 @@ package org.partiql.spi.fn /** - * TODO !! TEMPORARY AS FUNCTIONS ARE MOVED FROM CONNECTORS TO PLANNER. + * TODO !! TEMPORARY AS FUNCTIONS ARE MOVED TO [Catalog] APIs. */ public object SqlFnProvider { - private val fnNameIndex = SqlBuiltins.builtins.groupBy({ it.signature.name }, { it.signature }) + private val fnNameIndex = SqlBuiltins.builtins.groupBy { it.signature.name } private val fnSpecIndex = SqlBuiltins.builtins.associateBy { it.signature.specific } - private val aggNameIndex = SqlBuiltins.aggregations.groupBy({ it.signature.name }, { it.signature }) + private val aggNameIndex = SqlBuiltins.aggregations.groupBy { it.signature.name } private val aggSpecIndex = SqlBuiltins.aggregations.associateBy { it.signature.specific } - // - // INTERNAL PLANNER APIS - // - public fun lookupFn(name: String): List? = fnNameIndex[name] - public fun lookupAgg(name: String): List? = aggNameIndex[name] + internal fun lookupFn(name: String): List = fnNameIndex[name] ?: emptyList() + internal fun lookupAgg(name: String): List = aggNameIndex[name] ?: emptyList() // // TEMPORARY PUBLIC EVALUATOR APIS // - public fun getFn(specific: String): Fn? = fnSpecIndex[specific] - public fun getAgg(specific: String): Agg? = aggSpecIndex[specific] + public fun getFn(specific: String): Function? = fnSpecIndex[specific] + public fun getAgg(specific: String): Aggregation? = aggSpecIndex[specific] } diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggAny.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggAny.kt index 5e0ff94bb1..13deace2dd 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggAny.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggAny.kt @@ -3,38 +3,38 @@ package org.partiql.spi.fn.builtins -import org.partiql.spi.fn.Agg import org.partiql.spi.fn.AggSignature -import org.partiql.spi.fn.FnParameter +import org.partiql.spi.fn.Aggregation +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.builtins.internal.AccumulatorAnySome import org.partiql.types.PType -internal object Agg_ANY__BOOL__BOOL : Agg { +internal object Agg_ANY__BOOL__BOOL : Aggregation { override val signature: AggSignature = AggSignature( name = "any", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.bool()), + Parameter("value", PType.bool()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorAnySome() + override fun accumulator(): Aggregation.Accumulator = AccumulatorAnySome() } -internal object Agg_ANY__ANY__BOOL : Agg { +internal object Agg_ANY__ANY__BOOL : Aggregation { override val signature: AggSignature = AggSignature( name = "any", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.dynamic()), + Parameter("value", PType.dynamic()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorAnySome() + override fun accumulator(): Aggregation.Accumulator = AccumulatorAnySome() } diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggAvg.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggAvg.kt index 84f2376f73..3d4e81905a 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggAvg.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggAvg.kt @@ -3,143 +3,143 @@ package org.partiql.spi.fn.builtins -import org.partiql.spi.fn.Agg import org.partiql.spi.fn.AggSignature -import org.partiql.spi.fn.FnParameter +import org.partiql.spi.fn.Aggregation +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.builtins.internal.AccumulatorAvg import org.partiql.types.PType -internal object Agg_AVG__INT8__INT8 : Agg { +internal object Agg_AVG__INT8__INT8 : Aggregation { override val signature: AggSignature = AggSignature( name = "avg", returns = PType.decimal(), parameters = listOf( - FnParameter("value", PType.tinyint()), + Parameter("value", PType.tinyint()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorAvg(PType.decimal()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorAvg(PType.decimal()) } -internal object Agg_AVG__INT16__INT16 : Agg { +internal object Agg_AVG__INT16__INT16 : Aggregation { override val signature: AggSignature = AggSignature( name = "avg", returns = PType.decimal(), parameters = listOf( - FnParameter("value", PType.smallint()), + Parameter("value", PType.smallint()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorAvg(PType.decimal()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorAvg(PType.decimal()) } -internal object Agg_AVG__INT32__INT32 : Agg { +internal object Agg_AVG__INT32__INT32 : Aggregation { override val signature: AggSignature = AggSignature( name = "avg", returns = PType.decimal(), parameters = listOf( - FnParameter("value", PType.integer()), + Parameter("value", PType.integer()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorAvg(PType.decimal()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorAvg(PType.decimal()) } -internal object Agg_AVG__INT64__INT64 : Agg { +internal object Agg_AVG__INT64__INT64 : Aggregation { override val signature: AggSignature = AggSignature( name = "avg", returns = PType.decimal(), parameters = listOf( - FnParameter("value", PType.bigint()), + Parameter("value", PType.bigint()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorAvg(PType.decimal()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorAvg(PType.decimal()) } -internal object Agg_AVG__INT__INT : Agg { +internal object Agg_AVG__INT__INT : Aggregation { override val signature: AggSignature = AggSignature( name = "avg", returns = PType.decimal(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("value", PType.numeric()), + @Suppress("DEPRECATION") Parameter("value", PType.numeric()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorAvg(PType.decimal()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorAvg(PType.decimal()) } -internal object Agg_AVG__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Agg { +internal object Agg_AVG__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Aggregation { override val signature: AggSignature = AggSignature( name = "avg", returns = PType.decimal(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("value", PType.decimal()), + @Suppress("DEPRECATION") Parameter("value", PType.decimal()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorAvg(PType.decimal()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorAvg(PType.decimal()) } -internal object Agg_AVG__FLOAT32__FLOAT32 : Agg { +internal object Agg_AVG__FLOAT32__FLOAT32 : Aggregation { override val signature: AggSignature = AggSignature( name = "avg", returns = PType.real(), parameters = listOf( - FnParameter("value", PType.real()), + Parameter("value", PType.real()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorAvg(PType.real()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorAvg(PType.real()) } -internal object Agg_AVG__FLOAT64__FLOAT64 : Agg { +internal object Agg_AVG__FLOAT64__FLOAT64 : Aggregation { override val signature: AggSignature = AggSignature( name = "avg", returns = PType.doublePrecision(), parameters = listOf( - FnParameter("value", PType.doublePrecision()), + Parameter("value", PType.doublePrecision()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorAvg(PType.doublePrecision()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorAvg(PType.doublePrecision()) } -internal object Agg_AVG__ANY__ANY : Agg { +internal object Agg_AVG__ANY__ANY : Aggregation { override val signature: AggSignature = AggSignature( name = "avg", returns = PType.decimal(), parameters = listOf( - FnParameter("value", PType.dynamic()), + Parameter("value", PType.dynamic()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorAvg(PType.decimal()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorAvg(PType.decimal()) } diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggCount.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggCount.kt index 90c15b8f2f..f5182dfe78 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggCount.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggCount.kt @@ -3,23 +3,23 @@ package org.partiql.spi.fn.builtins -import org.partiql.spi.fn.Agg import org.partiql.spi.fn.AggSignature -import org.partiql.spi.fn.FnParameter +import org.partiql.spi.fn.Aggregation +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.builtins.internal.AccumulatorCount import org.partiql.types.PType -internal object Agg_COUNT__ANY__INT64 : Agg { +internal object Agg_COUNT__ANY__INT64 : Aggregation { override val signature: AggSignature = AggSignature( name = "count", returns = PType.bigint(), parameters = listOf( - FnParameter("value", PType.dynamic()), + Parameter("value", PType.dynamic()), ), isNullable = false, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorCount() + override fun accumulator(): Aggregation.Accumulator = AccumulatorCount() } diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggEvery.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggEvery.kt index 04a7b66d90..22d688b3a2 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggEvery.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggEvery.kt @@ -3,38 +3,38 @@ package org.partiql.spi.fn.builtins -import org.partiql.spi.fn.Agg import org.partiql.spi.fn.AggSignature -import org.partiql.spi.fn.FnParameter +import org.partiql.spi.fn.Aggregation +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.builtins.internal.AccumulatorEvery import org.partiql.types.PType -internal object Agg_EVERY__BOOL__BOOL : Agg { +internal object Agg_EVERY__BOOL__BOOL : Aggregation { override val signature: AggSignature = AggSignature( name = "every", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.bool()), + Parameter("value", PType.bool()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorEvery() + override fun accumulator(): Aggregation.Accumulator = AccumulatorEvery() } -internal object Agg_EVERY__ANY__BOOL : Agg { +internal object Agg_EVERY__ANY__BOOL : Aggregation { override val signature: AggSignature = AggSignature( name = "every", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.dynamic()), + Parameter("value", PType.dynamic()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorEvery() + override fun accumulator(): Aggregation.Accumulator = AccumulatorEvery() } diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggGroupAs.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggGroupAs.kt index 1e55bb7a9b..c6f1877aa0 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggGroupAs.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggGroupAs.kt @@ -3,23 +3,23 @@ package org.partiql.spi.fn.builtins -import org.partiql.spi.fn.Agg import org.partiql.spi.fn.AggSignature -import org.partiql.spi.fn.FnParameter +import org.partiql.spi.fn.Aggregation +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.builtins.internal.AccumulatorGroupAs import org.partiql.types.PType -internal object Agg_GROUP_AS__ANY__ANY : Agg { +internal object Agg_GROUP_AS__ANY__ANY : Aggregation { override val signature: AggSignature = AggSignature( name = "group_as", returns = PType.dynamic(), parameters = listOf( - FnParameter("value", PType.dynamic()), + Parameter("value", PType.dynamic()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorGroupAs() + override fun accumulator(): Aggregation.Accumulator = AccumulatorGroupAs() } diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggMax.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggMax.kt index a182653875..3592160f0a 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggMax.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggMax.kt @@ -3,143 +3,143 @@ package org.partiql.spi.fn.builtins -import org.partiql.spi.fn.Agg import org.partiql.spi.fn.AggSignature -import org.partiql.spi.fn.FnParameter +import org.partiql.spi.fn.Aggregation +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.builtins.internal.AccumulatorMax import org.partiql.types.PType -internal object Agg_MAX__INT8__INT8 : Agg { +internal object Agg_MAX__INT8__INT8 : Aggregation { override val signature: AggSignature = AggSignature( name = "max", returns = PType.tinyint(), parameters = listOf( - FnParameter("value", PType.tinyint()), + Parameter("value", PType.tinyint()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMax() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMax() } -internal object Agg_MAX__INT16__INT16 : Agg { +internal object Agg_MAX__INT16__INT16 : Aggregation { override val signature: AggSignature = AggSignature( name = "max", returns = PType.smallint(), parameters = listOf( - FnParameter("value", PType.smallint()), + Parameter("value", PType.smallint()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMax() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMax() } -internal object Agg_MAX__INT32__INT32 : Agg { +internal object Agg_MAX__INT32__INT32 : Aggregation { override val signature: AggSignature = AggSignature( name = "max", returns = PType.integer(), parameters = listOf( - FnParameter("value", PType.integer()), + Parameter("value", PType.integer()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMax() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMax() } -internal object Agg_MAX__INT64__INT64 : Agg { +internal object Agg_MAX__INT64__INT64 : Aggregation { override val signature: AggSignature = AggSignature( name = "max", returns = PType.bigint(), parameters = listOf( - FnParameter("value", PType.bigint()), + Parameter("value", PType.bigint()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMax() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMax() } -internal object Agg_MAX__INT__INT : Agg { +internal object Agg_MAX__INT__INT : Aggregation { override val signature: AggSignature = AggSignature( name = "max", returns = PType.numeric(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("value", PType.numeric()), + @Suppress("DEPRECATION") Parameter("value", PType.numeric()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMax() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMax() } -internal object Agg_MAX__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Agg { +internal object Agg_MAX__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Aggregation { override val signature: AggSignature = AggSignature( name = "max", returns = PType.decimal(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("value", PType.decimal()), + @Suppress("DEPRECATION") Parameter("value", PType.decimal()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMax() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMax() } -internal object Agg_MAX__FLOAT32__FLOAT32 : Agg { +internal object Agg_MAX__FLOAT32__FLOAT32 : Aggregation { override val signature: AggSignature = AggSignature( name = "max", returns = PType.real(), parameters = listOf( - FnParameter("value", PType.real()), + Parameter("value", PType.real()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMax() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMax() } -internal object Agg_MAX__FLOAT64__FLOAT64 : Agg { +internal object Agg_MAX__FLOAT64__FLOAT64 : Aggregation { override val signature: AggSignature = AggSignature( name = "max", returns = PType.doublePrecision(), parameters = listOf( - FnParameter("value", PType.doublePrecision()), + Parameter("value", PType.doublePrecision()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMax() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMax() } -internal object Agg_MAX__ANY__ANY : Agg { +internal object Agg_MAX__ANY__ANY : Aggregation { override val signature: AggSignature = AggSignature( name = "max", returns = PType.dynamic(), parameters = listOf( - FnParameter("value", PType.dynamic()), + Parameter("value", PType.dynamic()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMax() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMax() } diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggMin.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggMin.kt index 1aa4694603..dbd88c24fa 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggMin.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggMin.kt @@ -3,143 +3,143 @@ package org.partiql.spi.fn.builtins -import org.partiql.spi.fn.Agg import org.partiql.spi.fn.AggSignature -import org.partiql.spi.fn.FnParameter +import org.partiql.spi.fn.Aggregation +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.builtins.internal.AccumulatorMin import org.partiql.types.PType -internal object Agg_MIN__INT8__INT8 : Agg { +internal object Agg_MIN__INT8__INT8 : Aggregation { override val signature: AggSignature = AggSignature( name = "min", returns = PType.tinyint(), parameters = listOf( - FnParameter("value", PType.tinyint()), + Parameter("value", PType.tinyint()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMin() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMin() } -internal object Agg_MIN__INT16__INT16 : Agg { +internal object Agg_MIN__INT16__INT16 : Aggregation { override val signature: AggSignature = AggSignature( name = "min", returns = PType.smallint(), parameters = listOf( - FnParameter("value", PType.smallint()), + Parameter("value", PType.smallint()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMin() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMin() } -internal object Agg_MIN__INT32__INT32 : Agg { +internal object Agg_MIN__INT32__INT32 : Aggregation { override val signature: AggSignature = AggSignature( name = "min", returns = PType.integer(), parameters = listOf( - FnParameter("value", PType.integer()), + Parameter("value", PType.integer()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMin() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMin() } -internal object Agg_MIN__INT64__INT64 : Agg { +internal object Agg_MIN__INT64__INT64 : Aggregation { override val signature: AggSignature = AggSignature( name = "min", returns = PType.bigint(), parameters = listOf( - FnParameter("value", PType.bigint()), + Parameter("value", PType.bigint()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMin() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMin() } -internal object Agg_MIN__INT__INT : Agg { +internal object Agg_MIN__INT__INT : Aggregation { override val signature: AggSignature = AggSignature( name = "min", returns = PType.numeric(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("value", PType.numeric()), + @Suppress("DEPRECATION") Parameter("value", PType.numeric()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMin() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMin() } -internal object Agg_MIN__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Agg { +internal object Agg_MIN__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Aggregation { override val signature: AggSignature = AggSignature( name = "min", returns = PType.decimal(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("value", PType.decimal()), + @Suppress("DEPRECATION") Parameter("value", PType.decimal()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMin() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMin() } -internal object Agg_MIN__FLOAT32__FLOAT32 : Agg { +internal object Agg_MIN__FLOAT32__FLOAT32 : Aggregation { override val signature: AggSignature = AggSignature( name = "min", returns = PType.real(), parameters = listOf( - FnParameter("value", PType.real()), + Parameter("value", PType.real()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMin() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMin() } -internal object Agg_MIN__FLOAT64__FLOAT64 : Agg { +internal object Agg_MIN__FLOAT64__FLOAT64 : Aggregation { override val signature: AggSignature = AggSignature( name = "min", returns = PType.doublePrecision(), parameters = listOf( - FnParameter("value", PType.doublePrecision()), + Parameter("value", PType.doublePrecision()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMin() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMin() } -internal object Agg_MIN__ANY__ANY : Agg { +internal object Agg_MIN__ANY__ANY : Aggregation { override val signature: AggSignature = AggSignature( name = "min", returns = PType.dynamic(), parameters = listOf( - FnParameter("value", PType.dynamic()), + Parameter("value", PType.dynamic()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorMin() + override fun accumulator(): Aggregation.Accumulator = AccumulatorMin() } diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggSome.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggSome.kt index 4a1c26ace9..00c844d8e5 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggSome.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggSome.kt @@ -3,38 +3,38 @@ package org.partiql.spi.fn.builtins -import org.partiql.spi.fn.Agg import org.partiql.spi.fn.AggSignature -import org.partiql.spi.fn.FnParameter +import org.partiql.spi.fn.Aggregation +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.builtins.internal.AccumulatorAnySome import org.partiql.types.PType -internal object Agg_SOME__BOOL__BOOL : Agg { +internal object Agg_SOME__BOOL__BOOL : Aggregation { override val signature: AggSignature = AggSignature( name = "some", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.bool()), + Parameter("value", PType.bool()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorAnySome() + override fun accumulator(): Aggregation.Accumulator = AccumulatorAnySome() } -internal object Agg_SOME__ANY__BOOL : Agg { +internal object Agg_SOME__ANY__BOOL : Aggregation { override val signature: AggSignature = AggSignature( name = "some", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.dynamic()), + Parameter("value", PType.dynamic()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorAnySome() + override fun accumulator(): Aggregation.Accumulator = AccumulatorAnySome() } diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggSum.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggSum.kt index f6f14dc863..a8d8246b59 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggSum.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/AggSum.kt @@ -3,143 +3,143 @@ package org.partiql.spi.fn.builtins -import org.partiql.spi.fn.Agg import org.partiql.spi.fn.AggSignature -import org.partiql.spi.fn.FnParameter +import org.partiql.spi.fn.Aggregation +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.builtins.internal.AccumulatorSum import org.partiql.types.PType -internal object Agg_SUM__INT8__INT8 : Agg { +internal object Agg_SUM__INT8__INT8 : Aggregation { override val signature: AggSignature = AggSignature( name = "sum", returns = PType.tinyint(), parameters = listOf( - FnParameter("value", PType.tinyint()), + Parameter("value", PType.tinyint()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorSum(PType.tinyint()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorSum(PType.tinyint()) } -internal object Agg_SUM__INT16__INT16 : Agg { +internal object Agg_SUM__INT16__INT16 : Aggregation { override val signature: AggSignature = AggSignature( name = "sum", returns = PType.smallint(), parameters = listOf( - FnParameter("value", PType.smallint()), + Parameter("value", PType.smallint()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorSum(PType.smallint()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorSum(PType.smallint()) } -internal object Agg_SUM__INT32__INT32 : Agg { +internal object Agg_SUM__INT32__INT32 : Aggregation { override val signature: AggSignature = AggSignature( name = "sum", returns = PType.integer(), parameters = listOf( - FnParameter("value", PType.integer()), + Parameter("value", PType.integer()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorSum(PType.integer()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorSum(PType.integer()) } -internal object Agg_SUM__INT64__INT64 : Agg { +internal object Agg_SUM__INT64__INT64 : Aggregation { override val signature: AggSignature = AggSignature( name = "sum", returns = PType.bigint(), parameters = listOf( - FnParameter("value", PType.bigint()), + Parameter("value", PType.bigint()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorSum(PType.bigint()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorSum(PType.bigint()) } -internal object Agg_SUM__INT__INT : Agg { +internal object Agg_SUM__INT__INT : Aggregation { override val signature: AggSignature = AggSignature( name = "sum", returns = PType.numeric(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("value", PType.numeric()), + @Suppress("DEPRECATION") Parameter("value", PType.numeric()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorSum(PType.numeric()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorSum(PType.numeric()) } -internal object Agg_SUM__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Agg { +internal object Agg_SUM__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Aggregation { override val signature: AggSignature = AggSignature( name = "sum", returns = PType.decimal(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("value", PType.decimal()), + @Suppress("DEPRECATION") Parameter("value", PType.decimal()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorSum(PType.decimal()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorSum(PType.decimal()) } -internal object Agg_SUM__FLOAT32__FLOAT32 : Agg { +internal object Agg_SUM__FLOAT32__FLOAT32 : Aggregation { override val signature: AggSignature = AggSignature( name = "sum", returns = PType.real(), parameters = listOf( - FnParameter("value", PType.real()), + Parameter("value", PType.real()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorSum(PType.real()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorSum(PType.real()) } -internal object Agg_SUM__FLOAT64__FLOAT64 : Agg { +internal object Agg_SUM__FLOAT64__FLOAT64 : Aggregation { override val signature: AggSignature = AggSignature( name = "sum", returns = PType.doublePrecision(), parameters = listOf( - FnParameter("value", PType.doublePrecision()), + Parameter("value", PType.doublePrecision()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorSum(PType.doublePrecision()) + override fun accumulator(): Aggregation.Accumulator = AccumulatorSum(PType.doublePrecision()) } -internal object Agg_SUM__ANY__ANY : Agg { +internal object Agg_SUM__ANY__ANY : Aggregation { override val signature: AggSignature = AggSignature( name = "sum", returns = PType.dynamic(), parameters = listOf( - FnParameter("value", PType.dynamic()), + Parameter("value", PType.dynamic()), ), isNullable = true, isDecomposable = true ) - override fun accumulator(): Agg.Accumulator = AccumulatorSum() + override fun accumulator(): Aggregation.Accumulator = AccumulatorSum() } diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnAbs.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnAbs.kt index 66aafda7a7..e65fde09bd 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnAbs.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnAbs.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType import kotlin.math.absoluteValue // TODO: When negate a negative value, we need to consider overflow -internal object Fn_ABS__INT8__INT8 : Fn { +internal object Fn_ABS__INT8__INT8 : Function { override val signature = FnSignature( name = "abs", returns = PType.tinyint(), - parameters = listOf(FnParameter("value", PType.tinyint())), + parameters = listOf(Parameter("value", PType.tinyint())), isNullCall = true, isNullable = false, ) @@ -28,12 +28,12 @@ internal object Fn_ABS__INT8__INT8 : Fn { } } -internal object Fn_ABS__INT16__INT16 : Fn { +internal object Fn_ABS__INT16__INT16 : Function { override val signature = FnSignature( name = "abs", returns = PType.smallint(), - parameters = listOf(FnParameter("value", PType.smallint())), + parameters = listOf(Parameter("value", PType.smallint())), isNullCall = true, isNullable = false, ) @@ -44,12 +44,12 @@ internal object Fn_ABS__INT16__INT16 : Fn { } } -internal object Fn_ABS__INT32__INT32 : Fn { +internal object Fn_ABS__INT32__INT32 : Function { override val signature = FnSignature( name = "abs", returns = PType.integer(), - parameters = listOf(FnParameter("value", PType.integer())), + parameters = listOf(Parameter("value", PType.integer())), isNullCall = true, isNullable = false, ) @@ -60,12 +60,12 @@ internal object Fn_ABS__INT32__INT32 : Fn { } } -internal object Fn_ABS__INT64__INT64 : Fn { +internal object Fn_ABS__INT64__INT64 : Function { override val signature = FnSignature( name = "abs", returns = PType.bigint(), - parameters = listOf(FnParameter("value", PType.bigint())), + parameters = listOf(Parameter("value", PType.bigint())), isNullCall = true, isNullable = false, ) @@ -76,12 +76,12 @@ internal object Fn_ABS__INT64__INT64 : Fn { } } -internal object Fn_ABS__INT__INT : Fn { +internal object Fn_ABS__INT__INT : Function { override val signature = FnSignature( name = "abs", returns = PType.numeric(), - parameters = listOf(FnParameter("value", PType.numeric())), + parameters = listOf(Parameter("value", PType.numeric())), isNullCall = true, isNullable = false, ) @@ -92,12 +92,12 @@ internal object Fn_ABS__INT__INT : Fn { } } -internal object Fn_ABS__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Fn { +internal object Fn_ABS__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Function { override val signature = FnSignature( name = "abs", returns = PType.decimal(), - parameters = listOf(FnParameter("value", PType.decimal())), + parameters = listOf(Parameter("value", PType.decimal())), isNullCall = true, isNullable = false, ) @@ -108,12 +108,12 @@ internal object Fn_ABS__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Fn { } } -internal object Fn_ABS__FLOAT32__FLOAT32 : Fn { +internal object Fn_ABS__FLOAT32__FLOAT32 : Function { override val signature = FnSignature( name = "abs", returns = PType.real(), - parameters = listOf(FnParameter("value", PType.real())), + parameters = listOf(Parameter("value", PType.real())), isNullCall = true, isNullable = false, ) @@ -124,12 +124,12 @@ internal object Fn_ABS__FLOAT32__FLOAT32 : Fn { } } -internal object Fn_ABS__FLOAT64__FLOAT64 : Fn { +internal object Fn_ABS__FLOAT64__FLOAT64 : Function { override val signature = FnSignature( name = "abs", returns = PType.doublePrecision(), - parameters = listOf(FnParameter("value", PType.doublePrecision())), + parameters = listOf(Parameter("value", PType.doublePrecision())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnAnd.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnAnd.kt index 9006d38606..57acbc1438 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnAnd.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnAnd.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_AND__BOOL_BOOL__BOOL : Fn { +internal object Fn_AND__BOOL_BOOL__BOOL : Function { override val signature = FnSignature( name = "and", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.bool()), - FnParameter("rhs", PType.bool()), + Parameter("lhs", PType.bool()), + Parameter("rhs", PType.bool()), ), isNullable = true, isNullCall = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnBetween.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnBetween.kt index bb77f0b12f..47cc04cc1d 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnBetween.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnBetween.kt @@ -4,20 +4,20 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_BETWEEN__INT8_INT8_INT8__BOOL : Fn { +internal object Fn_BETWEEN__INT8_INT8_INT8__BOOL : Function { override val signature = FnSignature( name = "between", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.tinyint()), - FnParameter("lower", PType.tinyint()), - FnParameter("upper", PType.tinyint()), + Parameter("value", PType.tinyint()), + Parameter("lower", PType.tinyint()), + Parameter("upper", PType.tinyint()), ), isNullCall = true, isNullable = false, @@ -31,15 +31,15 @@ internal object Fn_BETWEEN__INT8_INT8_INT8__BOOL : Fn { } } -internal object Fn_BETWEEN__INT16_INT16_INT16__BOOL : Fn { +internal object Fn_BETWEEN__INT16_INT16_INT16__BOOL : Function { override val signature = FnSignature( name = "between", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.smallint()), - FnParameter("lower", PType.smallint()), - FnParameter("upper", PType.smallint()), + Parameter("value", PType.smallint()), + Parameter("lower", PType.smallint()), + Parameter("upper", PType.smallint()), ), isNullCall = true, isNullable = false, @@ -53,15 +53,15 @@ internal object Fn_BETWEEN__INT16_INT16_INT16__BOOL : Fn { } } -internal object Fn_BETWEEN__INT32_INT32_INT32__BOOL : Fn { +internal object Fn_BETWEEN__INT32_INT32_INT32__BOOL : Function { override val signature = FnSignature( name = "between", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.integer()), - FnParameter("lower", PType.integer()), - FnParameter("upper", PType.integer()), + Parameter("value", PType.integer()), + Parameter("lower", PType.integer()), + Parameter("upper", PType.integer()), ), isNullCall = true, isNullable = false, @@ -75,15 +75,15 @@ internal object Fn_BETWEEN__INT32_INT32_INT32__BOOL : Fn { } } -internal object Fn_BETWEEN__INT64_INT64_INT64__BOOL : Fn { +internal object Fn_BETWEEN__INT64_INT64_INT64__BOOL : Function { override val signature = FnSignature( name = "between", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.bigint()), - FnParameter("lower", PType.bigint()), - FnParameter("upper", PType.bigint()), + Parameter("value", PType.bigint()), + Parameter("lower", PType.bigint()), + Parameter("upper", PType.bigint()), ), isNullCall = true, isNullable = false, @@ -97,15 +97,15 @@ internal object Fn_BETWEEN__INT64_INT64_INT64__BOOL : Fn { } } -internal object Fn_BETWEEN__INT_INT_INT__BOOL : Fn { +internal object Fn_BETWEEN__INT_INT_INT__BOOL : Function { override val signature = FnSignature( name = "between", returns = PType.bool(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("value", PType.numeric()), - @Suppress("DEPRECATION") FnParameter("lower", PType.numeric()), - @Suppress("DEPRECATION") FnParameter("upper", PType.numeric()), + @Suppress("DEPRECATION") Parameter("value", PType.numeric()), + @Suppress("DEPRECATION") Parameter("lower", PType.numeric()), + @Suppress("DEPRECATION") Parameter("upper", PType.numeric()), ), isNullCall = true, isNullable = false, @@ -119,15 +119,16 @@ internal object Fn_BETWEEN__INT_INT_INT__BOOL : Fn { } } -internal object Fn_BETWEEN__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__BOOL : Fn { +internal object Fn_BETWEEN__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__BOOL : + Function { override val signature = FnSignature( name = "between", returns = PType.bool(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("value", PType.decimal()), - @Suppress("DEPRECATION") FnParameter("lower", PType.decimal()), - @Suppress("DEPRECATION") FnParameter("upper", PType.decimal()), + @Suppress("DEPRECATION") Parameter("value", PType.decimal()), + @Suppress("DEPRECATION") Parameter("lower", PType.decimal()), + @Suppress("DEPRECATION") Parameter("upper", PType.decimal()), ), isNullCall = true, isNullable = false, @@ -141,15 +142,15 @@ internal object Fn_BETWEEN__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY_DECIMAL_ARBITRAR } } -internal object Fn_BETWEEN__FLOAT32_FLOAT32_FLOAT32__BOOL : Fn { +internal object Fn_BETWEEN__FLOAT32_FLOAT32_FLOAT32__BOOL : Function { override val signature = FnSignature( name = "between", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.real()), - FnParameter("lower", PType.real()), - FnParameter("upper", PType.real()), + Parameter("value", PType.real()), + Parameter("lower", PType.real()), + Parameter("upper", PType.real()), ), isNullCall = true, isNullable = false, @@ -163,15 +164,15 @@ internal object Fn_BETWEEN__FLOAT32_FLOAT32_FLOAT32__BOOL : Fn { } } -internal object Fn_BETWEEN__FLOAT64_FLOAT64_FLOAT64__BOOL : Fn { +internal object Fn_BETWEEN__FLOAT64_FLOAT64_FLOAT64__BOOL : Function { override val signature = FnSignature( name = "between", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.doublePrecision()), - FnParameter("lower", PType.doublePrecision()), - FnParameter("upper", PType.doublePrecision()), + Parameter("value", PType.doublePrecision()), + Parameter("lower", PType.doublePrecision()), + Parameter("upper", PType.doublePrecision()), ), isNullCall = true, isNullable = false, @@ -185,15 +186,15 @@ internal object Fn_BETWEEN__FLOAT64_FLOAT64_FLOAT64__BOOL : Fn { } } -internal object Fn_BETWEEN__STRING_STRING_STRING__BOOL : Fn { +internal object Fn_BETWEEN__STRING_STRING_STRING__BOOL : Function { override val signature = FnSignature( name = "between", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.string()), - FnParameter("lower", PType.string()), - FnParameter("upper", PType.string()), + Parameter("value", PType.string()), + Parameter("lower", PType.string()), + Parameter("upper", PType.string()), ), isNullCall = true, isNullable = false, @@ -207,15 +208,15 @@ internal object Fn_BETWEEN__STRING_STRING_STRING__BOOL : Fn { } } -internal object Fn_BETWEEN__SYMBOL_SYMBOL_SYMBOL__BOOL : Fn { +internal object Fn_BETWEEN__SYMBOL_SYMBOL_SYMBOL__BOOL : Function { override val signature = FnSignature( name = "between", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.symbol()), - FnParameter("lower", PType.symbol()), - FnParameter("upper", PType.symbol()), + Parameter("value", PType.symbol()), + Parameter("lower", PType.symbol()), + Parameter("upper", PType.symbol()), ), isNullCall = true, isNullable = false, @@ -229,15 +230,15 @@ internal object Fn_BETWEEN__SYMBOL_SYMBOL_SYMBOL__BOOL : Fn { } } -internal object Fn_BETWEEN__CLOB_CLOB_CLOB__BOOL : Fn { +internal object Fn_BETWEEN__CLOB_CLOB_CLOB__BOOL : Function { override val signature = FnSignature( name = "between", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.clob(Int.MAX_VALUE)), - FnParameter("lower", PType.clob(Int.MAX_VALUE)), - FnParameter("upper", PType.clob(Int.MAX_VALUE)), + Parameter("value", PType.clob(Int.MAX_VALUE)), + Parameter("lower", PType.clob(Int.MAX_VALUE)), + Parameter("upper", PType.clob(Int.MAX_VALUE)), ), isNullCall = true, isNullable = false, @@ -251,15 +252,15 @@ internal object Fn_BETWEEN__CLOB_CLOB_CLOB__BOOL : Fn { } } -internal object Fn_BETWEEN__DATE_DATE_DATE__BOOL : Fn { +internal object Fn_BETWEEN__DATE_DATE_DATE__BOOL : Function { override val signature = FnSignature( name = "between", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.date()), - FnParameter("lower", PType.date()), - FnParameter("upper", PType.date()), + Parameter("value", PType.date()), + Parameter("lower", PType.date()), + Parameter("upper", PType.date()), ), isNullCall = true, isNullable = false, @@ -273,15 +274,15 @@ internal object Fn_BETWEEN__DATE_DATE_DATE__BOOL : Fn { } } -internal object Fn_BETWEEN__TIME_TIME_TIME__BOOL : Fn { +internal object Fn_BETWEEN__TIME_TIME_TIME__BOOL : Function { override val signature = FnSignature( name = "between", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.time(6)), - FnParameter("lower", PType.time(6)), - FnParameter("upper", PType.time(6)), + Parameter("value", PType.time(6)), + Parameter("lower", PType.time(6)), + Parameter("upper", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -295,15 +296,15 @@ internal object Fn_BETWEEN__TIME_TIME_TIME__BOOL : Fn { } } -internal object Fn_BETWEEN__TIMESTAMP_TIMESTAMP_TIMESTAMP__BOOL : Fn { +internal object Fn_BETWEEN__TIMESTAMP_TIMESTAMP_TIMESTAMP__BOOL : Function { override val signature = FnSignature( name = "between", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.timestamp(6)), - FnParameter("lower", PType.timestamp(6)), - FnParameter("upper", PType.timestamp(6)), + Parameter("value", PType.timestamp(6)), + Parameter("lower", PType.timestamp(6)), + Parameter("upper", PType.timestamp(6)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnBitLength.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnBitLength.kt index 96b4713b72..ba8878623f 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnBitLength.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnBitLength.kt @@ -1,19 +1,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType // SQL spec section 6.17 contains -internal object Fn_BIT_LENGTH__STRING__INT32 : Fn { +internal object Fn_BIT_LENGTH__STRING__INT32 : Function { override val signature = FnSignature( name = "bit_length", returns = PType.integer(), parameters = listOf( - FnParameter("value", PType.string()), + Parameter("value", PType.string()), ), isNullCall = true, isNullable = false, @@ -26,13 +26,13 @@ internal object Fn_BIT_LENGTH__STRING__INT32 : Fn { } } -internal object Fn_BIT_LENGTH__SYMBOL__INT32 : Fn { +internal object Fn_BIT_LENGTH__SYMBOL__INT32 : Function { override val signature = FnSignature( name = "bit_length", returns = PType.integer(), parameters = listOf( - FnParameter("lhs", PType.symbol()), + Parameter("lhs", PType.symbol()), ), isNullCall = true, isNullable = false, @@ -45,13 +45,13 @@ internal object Fn_BIT_LENGTH__SYMBOL__INT32 : Fn { } } -internal object Fn_BIT_LENGTH__CLOB__INT32 : Fn { +internal object Fn_BIT_LENGTH__CLOB__INT32 : Function { override val signature = FnSignature( name = "bit_length", returns = PType.integer(), parameters = listOf( - FnParameter("lhs", PType.clob(Int.MAX_VALUE)), + Parameter("lhs", PType.clob(Int.MAX_VALUE)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnBitwiseAnd.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnBitwiseAnd.kt index 94309e74e5..e5db11c928 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnBitwiseAnd.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnBitwiseAnd.kt @@ -4,20 +4,20 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType import kotlin.experimental.and -internal object Fn_BITWISE_AND__INT8_INT8__INT8 : Fn { +internal object Fn_BITWISE_AND__INT8_INT8__INT8 : Function { override val signature = FnSignature( name = "bitwise_and", returns = PType.tinyint(), parameters = listOf( - FnParameter("lhs", PType.tinyint()), - FnParameter("rhs", PType.tinyint()), + Parameter("lhs", PType.tinyint()), + Parameter("rhs", PType.tinyint()), ), isNullCall = true, isNullable = false, @@ -30,14 +30,14 @@ internal object Fn_BITWISE_AND__INT8_INT8__INT8 : Fn { } } -internal object Fn_BITWISE_AND__INT16_INT16__INT16 : Fn { +internal object Fn_BITWISE_AND__INT16_INT16__INT16 : Function { override val signature = FnSignature( name = "bitwise_and", returns = PType.smallint(), parameters = listOf( - FnParameter("lhs", PType.smallint()), - FnParameter("rhs", PType.smallint()), + Parameter("lhs", PType.smallint()), + Parameter("rhs", PType.smallint()), ), isNullCall = true, isNullable = false, @@ -50,14 +50,14 @@ internal object Fn_BITWISE_AND__INT16_INT16__INT16 : Fn { } } -internal object Fn_BITWISE_AND__INT32_INT32__INT32 : Fn { +internal object Fn_BITWISE_AND__INT32_INT32__INT32 : Function { override val signature = FnSignature( name = "bitwise_and", returns = PType.integer(), parameters = listOf( - FnParameter("lhs", PType.integer()), - FnParameter("rhs", PType.integer()), + Parameter("lhs", PType.integer()), + Parameter("rhs", PType.integer()), ), isNullCall = true, isNullable = false, @@ -70,14 +70,14 @@ internal object Fn_BITWISE_AND__INT32_INT32__INT32 : Fn { } } -internal object Fn_BITWISE_AND__INT64_INT64__INT64 : Fn { +internal object Fn_BITWISE_AND__INT64_INT64__INT64 : Function { override val signature = FnSignature( name = "bitwise_and", returns = PType.bigint(), parameters = listOf( - FnParameter("lhs", PType.bigint()), - FnParameter("rhs", PType.bigint()), + Parameter("lhs", PType.bigint()), + Parameter("rhs", PType.bigint()), ), isNullCall = true, isNullable = false, @@ -90,14 +90,14 @@ internal object Fn_BITWISE_AND__INT64_INT64__INT64 : Fn { } } -internal object Fn_BITWISE_AND__INT_INT__INT : Fn { +internal object Fn_BITWISE_AND__INT_INT__INT : Function { override val signature = FnSignature( name = "bitwise_and", returns = PType.numeric(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.numeric()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("lhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("rhs", PType.numeric()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCardinality.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCardinality.kt index 51da59685e..a6ecf3f4e0 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCardinality.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCardinality.kt @@ -1,18 +1,18 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_CARDINALITY__BAG__INT32 : Fn { +internal object Fn_CARDINALITY__BAG__INT32 : Function { override val signature = FnSignature( name = "cardinality", returns = PType.integer(), parameters = listOf( - FnParameter("container", PType.bag()), + Parameter("container", PType.bag()), ), isNullCall = true, isNullable = false, @@ -24,13 +24,13 @@ internal object Fn_CARDINALITY__BAG__INT32 : Fn { } } -internal object Fn_CARDINALITY__LIST__INT32 : Fn { +internal object Fn_CARDINALITY__LIST__INT32 : Function { override val signature = FnSignature( name = "cardinality", returns = PType.integer(), parameters = listOf( - FnParameter("container", PType.array()), + Parameter("container", PType.array()), ), isNullCall = true, isNullable = false, @@ -42,13 +42,13 @@ internal object Fn_CARDINALITY__LIST__INT32 : Fn { } } -internal object Fn_CARDINALITY__SEXP__INT32 : Fn { +internal object Fn_CARDINALITY__SEXP__INT32 : Function { override val signature = FnSignature( name = "cardinality", returns = PType.integer(), parameters = listOf( - FnParameter("container", PType.sexp()), + Parameter("container", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -60,13 +60,13 @@ internal object Fn_CARDINALITY__SEXP__INT32 : Fn { } } -internal object Fn_CARDINALITY__STRUCT__INT32 : Fn { +internal object Fn_CARDINALITY__STRUCT__INT32 : Function { override val signature = FnSignature( name = "cardinality", returns = PType.integer(), parameters = listOf( - FnParameter("container", PType.struct()), + Parameter("container", PType.struct()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCharLength.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCharLength.kt index 204ebe3f6f..3b0996f7f0 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCharLength.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCharLength.kt @@ -4,18 +4,18 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_CHAR_LENGTH__STRING__INT : Fn { +internal object Fn_CHAR_LENGTH__STRING__INT : Function { override val signature = FnSignature( name = "char_length", returns = PType.integer(), parameters = listOf( - FnParameter("value", PType.string()), + Parameter("value", PType.string()), ), isNullCall = true, isNullable = false, @@ -27,13 +27,13 @@ internal object Fn_CHAR_LENGTH__STRING__INT : Fn { } } -internal object Fn_CHAR_LENGTH__SYMBOL__INT : Fn { +internal object Fn_CHAR_LENGTH__SYMBOL__INT : Function { override val signature = FnSignature( name = "char_length", returns = PType.integer(), parameters = listOf( - FnParameter("lhs", PType.symbol()), + Parameter("lhs", PType.symbol()), ), isNullCall = true, isNullable = false, @@ -45,13 +45,13 @@ internal object Fn_CHAR_LENGTH__SYMBOL__INT : Fn { } } -internal object Fn_CHAR_LENGTH__CLOB__INT : Fn { +internal object Fn_CHAR_LENGTH__CLOB__INT : Function { override val signature = FnSignature( name = "char_length", returns = PType.integer(), parameters = listOf( - FnParameter("lhs", PType.clob(Int.MAX_VALUE)), + Parameter("lhs", PType.clob(Int.MAX_VALUE)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCollAgg.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCollAgg.kt index 8a39486aee..9eb536750d 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCollAgg.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCollAgg.kt @@ -4,9 +4,9 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.builtins.internal.Accumulator import org.partiql.spi.fn.builtins.internal.AccumulatorAnySome import org.partiql.spi.fn.builtins.internal.AccumulatorAvg @@ -22,7 +22,7 @@ internal abstract class Fn_COLL_AGG__BAG__ANY( name: String, private val isDistinct: Boolean, private val accumulator: () -> Accumulator, -) : Fn { +) : Function { private fun getAccumulator(): Accumulator = when (isDistinct) { true -> AccumulatorDistinct(accumulator.invoke()) @@ -37,7 +37,7 @@ internal abstract class Fn_COLL_AGG__BAG__ANY( name = name, returns = PType.dynamic(), parameters = listOf( - FnParameter("value", PType.bag()), + Parameter("value", PType.bag()), ), isNullCall = true, isNullable = true diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnConcat.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnConcat.kt index fe7267432b..4681d7dd31 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnConcat.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnConcat.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_CONCAT__STRING_STRING__STRING : Fn { +internal object Fn_CONCAT__STRING_STRING__STRING : Function { override val signature = FnSignature( name = "concat", returns = PType.string(), parameters = listOf( - FnParameter("lhs", PType.string()), - FnParameter("rhs", PType.string()), + Parameter("lhs", PType.string()), + Parameter("rhs", PType.string()), ), isNullCall = true, isNullable = false, @@ -29,14 +29,14 @@ internal object Fn_CONCAT__STRING_STRING__STRING : Fn { } } -internal object Fn_CONCAT__SYMBOL_SYMBOL__SYMBOL : Fn { +internal object Fn_CONCAT__SYMBOL_SYMBOL__SYMBOL : Function { override val signature = FnSignature( name = "concat", returns = PType.symbol(), parameters = listOf( - FnParameter("lhs", PType.symbol()), - FnParameter("rhs", PType.symbol()), + Parameter("lhs", PType.symbol()), + Parameter("rhs", PType.symbol()), ), isNullCall = true, isNullable = false, @@ -49,14 +49,14 @@ internal object Fn_CONCAT__SYMBOL_SYMBOL__SYMBOL : Fn { } } -internal object Fn_CONCAT__CLOB_CLOB__CLOB : Fn { +internal object Fn_CONCAT__CLOB_CLOB__CLOB : Function { override val signature = FnSignature( name = "concat", returns = PType.clob(Int.MAX_VALUE), parameters = listOf( - FnParameter("lhs", PType.clob(Int.MAX_VALUE)), - FnParameter("rhs", PType.clob(Int.MAX_VALUE)), + Parameter("lhs", PType.clob(Int.MAX_VALUE)), + Parameter("rhs", PType.clob(Int.MAX_VALUE)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCurrentDate.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCurrentDate.kt index 4c7eded03c..e259deec4d 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCurrentDate.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCurrentDate.kt @@ -4,11 +4,11 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function import org.partiql.types.PType -internal object Fn_CURRENT_DATE____DATE : Fn { +internal object Fn_CURRENT_DATE____DATE : Function { override val signature = FnSignature( name = "current_date", diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCurrentUser.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCurrentUser.kt index 2be585dbd9..0c8a08379d 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCurrentUser.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnCurrentUser.kt @@ -4,11 +4,11 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function import org.partiql.types.PType -internal object Fn_CURRENT_USER____STRING : Fn { +internal object Fn_CURRENT_USER____STRING : Function { override val signature = FnSignature( name = "current_user", diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddDay.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddDay.kt index 16c5428694..e4150dcda8 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddDay.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddDay.kt @@ -6,19 +6,19 @@ package org.partiql.spi.fn.builtins import org.partiql.errors.DataException import org.partiql.errors.TypeCheckException import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_DATE_ADD_DAY__INT32_DATE__DATE : Fn { +internal object Fn_DATE_ADD_DAY__INT32_DATE__DATE : Function { override val signature = FnSignature( name = "date_add_day", returns = PType.date(), parameters = listOf( - FnParameter("interval", PType.integer()), - FnParameter("datetime", PType.date()), + Parameter("interval", PType.integer()), + Parameter("datetime", PType.date()), ), isNullCall = true, isNullable = false, @@ -33,14 +33,14 @@ internal object Fn_DATE_ADD_DAY__INT32_DATE__DATE : Fn { } } -internal object Fn_DATE_ADD_DAY__INT64_DATE__DATE : Fn { +internal object Fn_DATE_ADD_DAY__INT64_DATE__DATE : Function { override val signature = FnSignature( name = "date_add_day", returns = PType.date(), parameters = listOf( - FnParameter("interval", PType.bigint()), - FnParameter("datetime", PType.date()), + Parameter("interval", PType.bigint()), + Parameter("datetime", PType.date()), ), isNullCall = true, isNullable = false, @@ -55,14 +55,14 @@ internal object Fn_DATE_ADD_DAY__INT64_DATE__DATE : Fn { } } -internal object Fn_DATE_ADD_DAY__INT_DATE__DATE : Fn { +internal object Fn_DATE_ADD_DAY__INT_DATE__DATE : Function { override val signature = FnSignature( name = "date_add_day", returns = PType.date(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("interval", PType.numeric()), - FnParameter("datetime", PType.date()), + @Suppress("DEPRECATION") Parameter("interval", PType.numeric()), + Parameter("datetime", PType.date()), ), isNullCall = true, isNullable = false, @@ -81,14 +81,14 @@ internal object Fn_DATE_ADD_DAY__INT_DATE__DATE : Fn { } } -internal object Fn_DATE_ADD_DAY__INT32_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_DAY__INT32_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_day", returns = PType.timestamp(6), parameters = listOf( - FnParameter("interval", PType.integer()), - FnParameter("datetime", PType.timestamp(6)), + Parameter("interval", PType.integer()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -103,14 +103,14 @@ internal object Fn_DATE_ADD_DAY__INT32_TIMESTAMP__TIMESTAMP : Fn { } } -internal object Fn_DATE_ADD_DAY__INT64_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_DAY__INT64_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_day", returns = PType.timestamp(6), parameters = listOf( - FnParameter("interval", PType.bigint()), - FnParameter("datetime", PType.timestamp(6)), + Parameter("interval", PType.bigint()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -125,14 +125,14 @@ internal object Fn_DATE_ADD_DAY__INT64_TIMESTAMP__TIMESTAMP : Fn { } } -internal object Fn_DATE_ADD_DAY__INT_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_DAY__INT_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_day", returns = PType.timestamp(6), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("interval", PType.numeric()), - FnParameter("datetime", PType.timestamp(6)), + @Suppress("DEPRECATION") Parameter("interval", PType.numeric()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddHour.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddHour.kt index 8d6bee01e4..9753a36315 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddHour.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddHour.kt @@ -6,19 +6,19 @@ package org.partiql.spi.fn.builtins import org.partiql.errors.DataException import org.partiql.errors.TypeCheckException import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_DATE_ADD_HOUR__INT32_TIME__TIME : Fn { +internal object Fn_DATE_ADD_HOUR__INT32_TIME__TIME : Function { override val signature = FnSignature( name = "date_add_hour", returns = PType.time(6), parameters = listOf( - FnParameter("interval", PType.integer()), - FnParameter("datetime", PType.time(6)), + Parameter("interval", PType.integer()), + Parameter("datetime", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -33,14 +33,14 @@ internal object Fn_DATE_ADD_HOUR__INT32_TIME__TIME : Fn { } } -internal object Fn_DATE_ADD_HOUR__INT64_TIME__TIME : Fn { +internal object Fn_DATE_ADD_HOUR__INT64_TIME__TIME : Function { override val signature = FnSignature( name = "date_add_hour", returns = PType.time(6), parameters = listOf( - FnParameter("interval", PType.bigint()), - FnParameter("datetime", PType.time(6)), + Parameter("interval", PType.bigint()), + Parameter("datetime", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -55,14 +55,14 @@ internal object Fn_DATE_ADD_HOUR__INT64_TIME__TIME : Fn { } } -internal object Fn_DATE_ADD_HOUR__INT_TIME__TIME : Fn { +internal object Fn_DATE_ADD_HOUR__INT_TIME__TIME : Function { override val signature = FnSignature( name = "date_add_hour", returns = PType.time(6), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("interval", PType.numeric()), - FnParameter("datetime", PType.time(6)), + @Suppress("DEPRECATION") Parameter("interval", PType.numeric()), + Parameter("datetime", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -81,14 +81,14 @@ internal object Fn_DATE_ADD_HOUR__INT_TIME__TIME : Fn { } } -internal object Fn_DATE_ADD_HOUR__INT32_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_HOUR__INT32_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_hour", returns = PType.timestamp(6), parameters = listOf( - FnParameter("interval", PType.integer()), - FnParameter("datetime", PType.timestamp(6)), + Parameter("interval", PType.integer()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -103,14 +103,14 @@ internal object Fn_DATE_ADD_HOUR__INT32_TIMESTAMP__TIMESTAMP : Fn { } } -internal object Fn_DATE_ADD_HOUR__INT64_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_HOUR__INT64_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_hour", returns = PType.timestamp(6), parameters = listOf( - FnParameter("interval", PType.bigint()), - FnParameter("datetime", PType.timestamp(6)), + Parameter("interval", PType.bigint()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -125,14 +125,14 @@ internal object Fn_DATE_ADD_HOUR__INT64_TIMESTAMP__TIMESTAMP : Fn { } } -internal object Fn_DATE_ADD_HOUR__INT_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_HOUR__INT_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_hour", returns = PType.timestamp(6), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("interval", PType.numeric()), - FnParameter("datetime", PType.timestamp(6)), + @Suppress("DEPRECATION") Parameter("interval", PType.numeric()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddMinute.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddMinute.kt index 015ce50886..5dd3d29032 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddMinute.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddMinute.kt @@ -6,19 +6,19 @@ package org.partiql.spi.fn.builtins import org.partiql.errors.DataException import org.partiql.errors.TypeCheckException import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_DATE_ADD_MINUTE__INT32_TIME__TIME : Fn { +internal object Fn_DATE_ADD_MINUTE__INT32_TIME__TIME : Function { override val signature = FnSignature( name = "date_add_minute", returns = PType.time(6), parameters = listOf( - FnParameter("interval", PType.integer()), - FnParameter("datetime", PType.time(6)), + Parameter("interval", PType.integer()), + Parameter("datetime", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -33,14 +33,14 @@ internal object Fn_DATE_ADD_MINUTE__INT32_TIME__TIME : Fn { } } -internal object Fn_DATE_ADD_MINUTE__INT64_TIME__TIME : Fn { +internal object Fn_DATE_ADD_MINUTE__INT64_TIME__TIME : Function { override val signature = FnSignature( name = "date_add_minute", returns = PType.time(6), parameters = listOf( - FnParameter("interval", PType.bigint()), - FnParameter("datetime", PType.time(6)), + Parameter("interval", PType.bigint()), + Parameter("datetime", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -55,14 +55,14 @@ internal object Fn_DATE_ADD_MINUTE__INT64_TIME__TIME : Fn { } } -internal object Fn_DATE_ADD_MINUTE__INT_TIME__TIME : Fn { +internal object Fn_DATE_ADD_MINUTE__INT_TIME__TIME : Function { override val signature = FnSignature( name = "date_add_minute", returns = PType.time(6), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("interval", PType.numeric()), - FnParameter("datetime", PType.time(6)), + @Suppress("DEPRECATION") Parameter("interval", PType.numeric()), + Parameter("datetime", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -81,14 +81,14 @@ internal object Fn_DATE_ADD_MINUTE__INT_TIME__TIME : Fn { } } -internal object Fn_DATE_ADD_MINUTE__INT32_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_MINUTE__INT32_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_minute", returns = PType.timestamp(6), parameters = listOf( - FnParameter("interval", PType.integer()), - FnParameter("datetime", PType.timestamp(6)), + Parameter("interval", PType.integer()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -103,14 +103,14 @@ internal object Fn_DATE_ADD_MINUTE__INT32_TIMESTAMP__TIMESTAMP : Fn { } } -internal object Fn_DATE_ADD_MINUTE__INT64_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_MINUTE__INT64_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_minute", returns = PType.timestamp(6), parameters = listOf( - FnParameter("interval", PType.bigint()), - FnParameter("datetime", PType.timestamp(6)), + Parameter("interval", PType.bigint()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -125,14 +125,14 @@ internal object Fn_DATE_ADD_MINUTE__INT64_TIMESTAMP__TIMESTAMP : Fn { } } -internal object Fn_DATE_ADD_MINUTE__INT_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_MINUTE__INT_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_minute", returns = PType.timestamp(6), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("interval", PType.numeric()), - FnParameter("datetime", PType.timestamp(6)), + @Suppress("DEPRECATION") Parameter("interval", PType.numeric()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddMonth.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddMonth.kt index c4aff55fcb..bcb40680ef 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddMonth.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddMonth.kt @@ -6,19 +6,19 @@ package org.partiql.spi.fn.builtins import org.partiql.errors.DataException import org.partiql.errors.TypeCheckException import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_DATE_ADD_MONTH__INT32_DATE__DATE : Fn { +internal object Fn_DATE_ADD_MONTH__INT32_DATE__DATE : Function { override val signature = FnSignature( name = "date_add_month", returns = PType.date(), parameters = listOf( - FnParameter("interval", PType.integer()), - FnParameter("datetime", PType.date()), + Parameter("interval", PType.integer()), + Parameter("datetime", PType.date()), ), isNullCall = true, isNullable = false, @@ -33,14 +33,14 @@ internal object Fn_DATE_ADD_MONTH__INT32_DATE__DATE : Fn { } } -internal object Fn_DATE_ADD_MONTH__INT64_DATE__DATE : Fn { +internal object Fn_DATE_ADD_MONTH__INT64_DATE__DATE : Function { override val signature = FnSignature( name = "date_add_month", returns = PType.date(), parameters = listOf( - FnParameter("interval", PType.bigint()), - FnParameter("datetime", PType.date()), + Parameter("interval", PType.bigint()), + Parameter("datetime", PType.date()), ), isNullCall = true, isNullable = false, @@ -55,14 +55,14 @@ internal object Fn_DATE_ADD_MONTH__INT64_DATE__DATE : Fn { } } -internal object Fn_DATE_ADD_MONTH__INT_DATE__DATE : Fn { +internal object Fn_DATE_ADD_MONTH__INT_DATE__DATE : Function { override val signature = FnSignature( name = "date_add_month", returns = PType.date(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("interval", PType.numeric()), - FnParameter("datetime", PType.date()), + @Suppress("DEPRECATION") Parameter("interval", PType.numeric()), + Parameter("datetime", PType.date()), ), isNullCall = true, isNullable = false, @@ -81,14 +81,14 @@ internal object Fn_DATE_ADD_MONTH__INT_DATE__DATE : Fn { } } -internal object Fn_DATE_ADD_MONTH__INT32_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_MONTH__INT32_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_month", returns = PType.timestamp(6), parameters = listOf( - FnParameter("interval", PType.integer()), - FnParameter("datetime", PType.timestamp(6)), + Parameter("interval", PType.integer()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -103,14 +103,14 @@ internal object Fn_DATE_ADD_MONTH__INT32_TIMESTAMP__TIMESTAMP : Fn { } } -internal object Fn_DATE_ADD_MONTH__INT64_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_MONTH__INT64_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_month", returns = PType.timestamp(6), parameters = listOf( - FnParameter("interval", PType.bigint()), - FnParameter("datetime", PType.timestamp(6)), + Parameter("interval", PType.bigint()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -125,14 +125,14 @@ internal object Fn_DATE_ADD_MONTH__INT64_TIMESTAMP__TIMESTAMP : Fn { } } -internal object Fn_DATE_ADD_MONTH__INT_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_MONTH__INT_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_month", returns = PType.timestamp(6), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("interval", PType.numeric()), - FnParameter("datetime", PType.timestamp(6)), + @Suppress("DEPRECATION") Parameter("interval", PType.numeric()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddSecond.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddSecond.kt index 562b62cda3..a03a139d9f 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddSecond.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddSecond.kt @@ -6,19 +6,19 @@ package org.partiql.spi.fn.builtins import org.partiql.errors.DataException import org.partiql.errors.TypeCheckException import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_DATE_ADD_SECOND__INT32_TIME__TIME : Fn { +internal object Fn_DATE_ADD_SECOND__INT32_TIME__TIME : Function { override val signature = FnSignature( name = "date_add_second", returns = PType.time(6), parameters = listOf( - FnParameter("interval", PType.integer()), - FnParameter("datetime", PType.time(6)), + Parameter("interval", PType.integer()), + Parameter("datetime", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -33,14 +33,14 @@ internal object Fn_DATE_ADD_SECOND__INT32_TIME__TIME : Fn { } } -internal object Fn_DATE_ADD_SECOND__INT64_TIME__TIME : Fn { +internal object Fn_DATE_ADD_SECOND__INT64_TIME__TIME : Function { override val signature = FnSignature( name = "date_add_second", returns = PType.time(6), parameters = listOf( - FnParameter("interval", PType.bigint()), - FnParameter("datetime", PType.time(6)), + Parameter("interval", PType.bigint()), + Parameter("datetime", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -55,14 +55,14 @@ internal object Fn_DATE_ADD_SECOND__INT64_TIME__TIME : Fn { } } -internal object Fn_DATE_ADD_SECOND__INT_TIME__TIME : Fn { +internal object Fn_DATE_ADD_SECOND__INT_TIME__TIME : Function { override val signature = FnSignature( name = "date_add_second", returns = PType.time(6), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("interval", PType.numeric()), - FnParameter("datetime", PType.time(6)), + @Suppress("DEPRECATION") Parameter("interval", PType.numeric()), + Parameter("datetime", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -81,14 +81,14 @@ internal object Fn_DATE_ADD_SECOND__INT_TIME__TIME : Fn { } } -internal object Fn_DATE_ADD_SECOND__INT32_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_SECOND__INT32_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_second", returns = PType.timestamp(6), parameters = listOf( - FnParameter("interval", PType.integer()), - FnParameter("datetime", PType.timestamp(6)), + Parameter("interval", PType.integer()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -103,14 +103,14 @@ internal object Fn_DATE_ADD_SECOND__INT32_TIMESTAMP__TIMESTAMP : Fn { } } -internal object Fn_DATE_ADD_SECOND__INT64_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_SECOND__INT64_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_second", returns = PType.timestamp(6), parameters = listOf( - FnParameter("interval", PType.bigint()), - FnParameter("datetime", PType.timestamp(6)), + Parameter("interval", PType.bigint()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -125,14 +125,14 @@ internal object Fn_DATE_ADD_SECOND__INT64_TIMESTAMP__TIMESTAMP : Fn { } } -internal object Fn_DATE_ADD_SECOND__INT_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_SECOND__INT_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_second", returns = PType.timestamp(6), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("interval", PType.numeric()), - FnParameter("datetime", PType.timestamp(6)), + @Suppress("DEPRECATION") Parameter("interval", PType.numeric()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddYear.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddYear.kt index 82e3e43075..ce8a281857 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddYear.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateAddYear.kt @@ -6,19 +6,19 @@ package org.partiql.spi.fn.builtins import org.partiql.errors.DataException import org.partiql.errors.TypeCheckException import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_DATE_ADD_YEAR__INT32_DATE__DATE : Fn { +internal object Fn_DATE_ADD_YEAR__INT32_DATE__DATE : Function { override val signature = FnSignature( name = "date_add_year", returns = PType.date(), parameters = listOf( - FnParameter("interval", PType.integer()), - FnParameter("datetime", PType.date()), + Parameter("interval", PType.integer()), + Parameter("datetime", PType.date()), ), isNullCall = true, isNullable = false, @@ -33,14 +33,14 @@ internal object Fn_DATE_ADD_YEAR__INT32_DATE__DATE : Fn { } } -internal object Fn_DATE_ADD_YEAR__INT64_DATE__DATE : Fn { +internal object Fn_DATE_ADD_YEAR__INT64_DATE__DATE : Function { override val signature = FnSignature( name = "date_add_year", returns = PType.date(), parameters = listOf( - FnParameter("interval", PType.bigint()), - FnParameter("datetime", PType.date()), + Parameter("interval", PType.bigint()), + Parameter("datetime", PType.date()), ), isNullCall = true, isNullable = false, @@ -55,14 +55,14 @@ internal object Fn_DATE_ADD_YEAR__INT64_DATE__DATE : Fn { } } -internal object Fn_DATE_ADD_YEAR__INT_DATE__DATE : Fn { +internal object Fn_DATE_ADD_YEAR__INT_DATE__DATE : Function { override val signature = FnSignature( name = "date_add_year", returns = PType.date(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("interval", PType.numeric()), - FnParameter("datetime", PType.date()), + @Suppress("DEPRECATION") Parameter("interval", PType.numeric()), + Parameter("datetime", PType.date()), ), isNullCall = true, isNullable = false, @@ -81,14 +81,14 @@ internal object Fn_DATE_ADD_YEAR__INT_DATE__DATE : Fn { } } -internal object Fn_DATE_ADD_YEAR__INT32_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_YEAR__INT32_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_year", returns = PType.timestamp(6), parameters = listOf( - FnParameter("interval", PType.integer()), - FnParameter("datetime", PType.timestamp(6)), + Parameter("interval", PType.integer()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -103,14 +103,14 @@ internal object Fn_DATE_ADD_YEAR__INT32_TIMESTAMP__TIMESTAMP : Fn { } } -internal object Fn_DATE_ADD_YEAR__INT64_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_YEAR__INT64_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_year", returns = PType.timestamp(6), parameters = listOf( - FnParameter("interval", PType.bigint()), - FnParameter("datetime", PType.timestamp(6)), + Parameter("interval", PType.bigint()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -125,14 +125,14 @@ internal object Fn_DATE_ADD_YEAR__INT64_TIMESTAMP__TIMESTAMP : Fn { } } -internal object Fn_DATE_ADD_YEAR__INT_TIMESTAMP__TIMESTAMP : Fn { +internal object Fn_DATE_ADD_YEAR__INT_TIMESTAMP__TIMESTAMP : Function { override val signature = FnSignature( name = "date_add_year", returns = PType.timestamp(6), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("interval", PType.numeric()), - FnParameter("datetime", PType.timestamp(6)), + @Suppress("DEPRECATION") Parameter("interval", PType.numeric()), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffDay.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffDay.kt index 6d3f51b9f5..7f81d5917d 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffDay.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffDay.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_DATE_DIFF_DAY__DATE_DATE__INT64 : Fn { +internal object Fn_DATE_DIFF_DAY__DATE_DATE__INT64 : Function { override val signature = FnSignature( name = "date_diff_day", returns = PType.bigint(), parameters = listOf( - FnParameter("datetime1", PType.date()), - FnParameter("datetime2", PType.date()), + Parameter("datetime1", PType.date()), + Parameter("datetime2", PType.date()), ), isNullCall = true, isNullable = false, @@ -27,14 +27,14 @@ internal object Fn_DATE_DIFF_DAY__DATE_DATE__INT64 : Fn { } } -internal object Fn_DATE_DIFF_DAY__TIMESTAMP_TIMESTAMP__INT64 : Fn { +internal object Fn_DATE_DIFF_DAY__TIMESTAMP_TIMESTAMP__INT64 : Function { override val signature = FnSignature( name = "date_diff_day", returns = PType.bigint(), parameters = listOf( - FnParameter("datetime1", PType.timestamp(6)), - FnParameter("datetime2", PType.timestamp(6)), + Parameter("datetime1", PType.timestamp(6)), + Parameter("datetime2", PType.timestamp(6)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffHour.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffHour.kt index 841c0a143a..409243fb0f 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffHour.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffHour.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_DATE_DIFF_HOUR__TIME_TIME__INT64 : Fn { +internal object Fn_DATE_DIFF_HOUR__TIME_TIME__INT64 : Function { override val signature = FnSignature( name = "date_diff_hour", returns = PType.bigint(), parameters = listOf( - FnParameter("datetime1", PType.time(6)), - FnParameter("datetime2", PType.time(6)), + Parameter("datetime1", PType.time(6)), + Parameter("datetime2", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -27,14 +27,14 @@ internal object Fn_DATE_DIFF_HOUR__TIME_TIME__INT64 : Fn { } } -internal object Fn_DATE_DIFF_HOUR__TIMESTAMP_TIMESTAMP__INT64 : Fn { +internal object Fn_DATE_DIFF_HOUR__TIMESTAMP_TIMESTAMP__INT64 : Function { override val signature = FnSignature( name = "date_diff_hour", returns = PType.bigint(), parameters = listOf( - FnParameter("datetime1", PType.timestamp(6)), - FnParameter("datetime2", PType.timestamp(6)), + Parameter("datetime1", PType.timestamp(6)), + Parameter("datetime2", PType.timestamp(6)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffMinute.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffMinute.kt index 465ba97960..9efe068c75 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffMinute.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffMinute.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_DATE_DIFF_MINUTE__TIME_TIME__INT64 : Fn { +internal object Fn_DATE_DIFF_MINUTE__TIME_TIME__INT64 : Function { override val signature = FnSignature( name = "date_diff_minute", returns = PType.bigint(), parameters = listOf( - FnParameter("datetime1", PType.time(6)), - FnParameter("datetime2", PType.time(6)), + Parameter("datetime1", PType.time(6)), + Parameter("datetime2", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -27,14 +27,14 @@ internal object Fn_DATE_DIFF_MINUTE__TIME_TIME__INT64 : Fn { } } -internal object Fn_DATE_DIFF_MINUTE__TIMESTAMP_TIMESTAMP__INT64 : Fn { +internal object Fn_DATE_DIFF_MINUTE__TIMESTAMP_TIMESTAMP__INT64 : Function { override val signature = FnSignature( name = "date_diff_minute", returns = PType.bigint(), parameters = listOf( - FnParameter("datetime1", PType.timestamp(6)), - FnParameter("datetime2", PType.timestamp(6)), + Parameter("datetime1", PType.timestamp(6)), + Parameter("datetime2", PType.timestamp(6)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffMonth.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffMonth.kt index e16f67b8ab..10715efbfb 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffMonth.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffMonth.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_DATE_DIFF_MONTH__DATE_DATE__INT64 : Fn { +internal object Fn_DATE_DIFF_MONTH__DATE_DATE__INT64 : Function { override val signature = FnSignature( name = "date_diff_month", returns = PType.bigint(), parameters = listOf( - FnParameter("datetime1", PType.date()), - FnParameter("datetime2", PType.date()), + Parameter("datetime1", PType.date()), + Parameter("datetime2", PType.date()), ), isNullCall = true, isNullable = false, @@ -27,14 +27,14 @@ internal object Fn_DATE_DIFF_MONTH__DATE_DATE__INT64 : Fn { } } -internal object Fn_DATE_DIFF_MONTH__TIMESTAMP_TIMESTAMP__INT64 : Fn { +internal object Fn_DATE_DIFF_MONTH__TIMESTAMP_TIMESTAMP__INT64 : Function { override val signature = FnSignature( name = "date_diff_month", returns = PType.bigint(), parameters = listOf( - FnParameter("datetime1", PType.timestamp(6)), - FnParameter("datetime2", PType.timestamp(6)), + Parameter("datetime1", PType.timestamp(6)), + Parameter("datetime2", PType.timestamp(6)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffSecond.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffSecond.kt index 97c646417d..5bb37bbe1c 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffSecond.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffSecond.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_DATE_DIFF_SECOND__TIME_TIME__INT64 : Fn { +internal object Fn_DATE_DIFF_SECOND__TIME_TIME__INT64 : Function { override val signature = FnSignature( name = "date_diff_second", returns = PType.bigint(), parameters = listOf( - FnParameter("datetime1", PType.time(6)), - FnParameter("datetime2", PType.time(6)), + Parameter("datetime1", PType.time(6)), + Parameter("datetime2", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -27,14 +27,14 @@ internal object Fn_DATE_DIFF_SECOND__TIME_TIME__INT64 : Fn { } } -internal object Fn_DATE_DIFF_SECOND__TIMESTAMP_TIMESTAMP__INT64 : Fn { +internal object Fn_DATE_DIFF_SECOND__TIMESTAMP_TIMESTAMP__INT64 : Function { override val signature = FnSignature( name = "date_diff_second", returns = PType.bigint(), parameters = listOf( - FnParameter("datetime1", PType.timestamp(6)), - FnParameter("datetime2", PType.timestamp(6)), + Parameter("datetime1", PType.timestamp(6)), + Parameter("datetime2", PType.timestamp(6)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffYear.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffYear.kt index 52f7690a9b..ff088bba52 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffYear.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDateDiffYear.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_DATE_DIFF_YEAR__DATE_DATE__INT64 : Fn { +internal object Fn_DATE_DIFF_YEAR__DATE_DATE__INT64 : Function { override val signature = FnSignature( name = "date_diff_year", returns = PType.bigint(), parameters = listOf( - FnParameter("datetime1", PType.date()), - FnParameter("datetime2", PType.date()), + Parameter("datetime1", PType.date()), + Parameter("datetime2", PType.date()), ), isNullCall = true, isNullable = false, @@ -27,14 +27,14 @@ internal object Fn_DATE_DIFF_YEAR__DATE_DATE__INT64 : Fn { } } -internal object Fn_DATE_DIFF_YEAR__TIMESTAMP_TIMESTAMP__INT64 : Fn { +internal object Fn_DATE_DIFF_YEAR__TIMESTAMP_TIMESTAMP__INT64 : Function { override val signature = FnSignature( name = "date_diff_year", returns = PType.bigint(), parameters = listOf( - FnParameter("datetime1", PType.timestamp(6)), - FnParameter("datetime2", PType.timestamp(6)), + Parameter("datetime1", PType.timestamp(6)), + Parameter("datetime2", PType.timestamp(6)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDivide.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDivide.kt index 49de747efb..e2e5d2455e 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDivide.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnDivide.kt @@ -4,20 +4,20 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType // TODO: Handle Overflow -internal object Fn_DIVIDE__INT8_INT8__INT8 : Fn { +internal object Fn_DIVIDE__INT8_INT8__INT8 : Function { override val signature = FnSignature( name = "divide", returns = PType.tinyint(), parameters = listOf( - FnParameter("lhs", PType.tinyint()), - FnParameter("rhs", PType.tinyint()), + Parameter("lhs", PType.tinyint()), + Parameter("rhs", PType.tinyint()), ), isNullCall = true, isNullable = false, @@ -30,14 +30,14 @@ internal object Fn_DIVIDE__INT8_INT8__INT8 : Fn { } } -internal object Fn_DIVIDE__INT16_INT16__INT16 : Fn { +internal object Fn_DIVIDE__INT16_INT16__INT16 : Function { override val signature = FnSignature( name = "divide", returns = PType.smallint(), parameters = listOf( - FnParameter("lhs", PType.smallint()), - FnParameter("rhs", PType.smallint()), + Parameter("lhs", PType.smallint()), + Parameter("rhs", PType.smallint()), ), isNullCall = true, isNullable = false, @@ -50,14 +50,14 @@ internal object Fn_DIVIDE__INT16_INT16__INT16 : Fn { } } -internal object Fn_DIVIDE__INT32_INT32__INT32 : Fn { +internal object Fn_DIVIDE__INT32_INT32__INT32 : Function { override val signature = FnSignature( name = "divide", returns = PType.integer(), parameters = listOf( - FnParameter("lhs", PType.integer()), - FnParameter("rhs", PType.integer()), + Parameter("lhs", PType.integer()), + Parameter("rhs", PType.integer()), ), isNullCall = true, isNullable = false, @@ -70,14 +70,14 @@ internal object Fn_DIVIDE__INT32_INT32__INT32 : Fn { } } -internal object Fn_DIVIDE__INT64_INT64__INT64 : Fn { +internal object Fn_DIVIDE__INT64_INT64__INT64 : Function { override val signature = FnSignature( name = "divide", returns = PType.bigint(), parameters = listOf( - FnParameter("lhs", PType.bigint()), - FnParameter("rhs", PType.bigint()), + Parameter("lhs", PType.bigint()), + Parameter("rhs", PType.bigint()), ), isNullCall = true, isNullable = false, @@ -90,14 +90,14 @@ internal object Fn_DIVIDE__INT64_INT64__INT64 : Fn { } } -internal object Fn_DIVIDE__INT_INT__INT : Fn { +internal object Fn_DIVIDE__INT_INT__INT : Function { override val signature = FnSignature( name = "divide", returns = PType.numeric(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.numeric()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("lhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("rhs", PType.numeric()), ), isNullCall = true, isNullable = false, @@ -110,14 +110,15 @@ internal object Fn_DIVIDE__INT_INT__INT : Fn { } } -internal object Fn_DIVIDE__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Fn { +internal object Fn_DIVIDE__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : + Function { override val signature = FnSignature( name = "divide", returns = PType.decimal(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.decimal()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("lhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("rhs", PType.decimal()), ), isNullCall = true, isNullable = false, @@ -130,14 +131,14 @@ internal object Fn_DIVIDE__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__DECIMAL_ARBITRAR } } -internal object Fn_DIVIDE__FLOAT32_FLOAT32__FLOAT32 : Fn { +internal object Fn_DIVIDE__FLOAT32_FLOAT32__FLOAT32 : Function { override val signature = FnSignature( name = "divide", returns = PType.real(), parameters = listOf( - FnParameter("lhs", PType.real()), - FnParameter("rhs", PType.real()), + Parameter("lhs", PType.real()), + Parameter("rhs", PType.real()), ), isNullCall = true, isNullable = false, @@ -150,14 +151,14 @@ internal object Fn_DIVIDE__FLOAT32_FLOAT32__FLOAT32 : Fn { } } -internal object Fn_DIVIDE__FLOAT64_FLOAT64__FLOAT64 : Fn { +internal object Fn_DIVIDE__FLOAT64_FLOAT64__FLOAT64 : Function { override val signature = FnSignature( name = "divide", returns = PType.doublePrecision(), parameters = listOf( - FnParameter("lhs", PType.doublePrecision()), - FnParameter("rhs", PType.doublePrecision()), + Parameter("lhs", PType.doublePrecision()), + Parameter("rhs", PType.doublePrecision()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnEq.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnEq.kt index 0257e066ad..95ed522873 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnEq.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnEq.kt @@ -4,9 +4,9 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType /** @@ -23,7 +23,7 @@ import org.partiql.types.PType * TODO: The PartiQL Specification needs to clearly define the semantics of MISSING. That being said, this implementation * follows the existing conformance tests and SQL:1999. */ -internal object Fn_EQ__ANY_ANY__BOOL : Fn { +internal object Fn_EQ__ANY_ANY__BOOL : Function { private val comparator = Datum.comparator() @@ -31,8 +31,8 @@ internal object Fn_EQ__ANY_ANY__BOOL : Fn { name = "eq", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.dynamic()), - FnParameter("rhs", PType.dynamic()), + Parameter("lhs", PType.dynamic()), + Parameter("rhs", PType.dynamic()), ), isNullable = true, isNullCall = true, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnExists.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnExists.kt index 2b0869bf44..61e140bba0 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnExists.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnExists.kt @@ -1,18 +1,18 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_EXISTS__BAG__BOOL : Fn { +internal object Fn_EXISTS__BAG__BOOL : Function { override val signature = FnSignature( name = "exists", returns = PType.bool(), parameters = listOf( - FnParameter("container", PType.bag()), + Parameter("container", PType.bag()), ), isNullCall = true, isNullable = false, @@ -25,13 +25,13 @@ internal object Fn_EXISTS__BAG__BOOL : Fn { } } -internal object Fn_EXISTS__LIST__BOOL : Fn { +internal object Fn_EXISTS__LIST__BOOL : Function { override val signature = FnSignature( name = "exists", returns = PType.bool(), parameters = listOf( - FnParameter("container", PType.array()), + Parameter("container", PType.array()), ), isNullCall = true, isNullable = false, @@ -44,13 +44,13 @@ internal object Fn_EXISTS__LIST__BOOL : Fn { } } -internal object Fn_EXISTS__SEXP__BOOL : Fn { +internal object Fn_EXISTS__SEXP__BOOL : Function { override val signature = FnSignature( name = "exists", returns = PType.bool(), parameters = listOf( - FnParameter("container", PType.sexp()), + Parameter("container", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -63,13 +63,13 @@ internal object Fn_EXISTS__SEXP__BOOL : Fn { } } -internal object Fn_EXISTS__STRUCT__BOOL : Fn { +internal object Fn_EXISTS__STRUCT__BOOL : Function { override val signature = FnSignature( name = "exists", returns = PType.bool(), parameters = listOf( - FnParameter("container", PType.struct()), + Parameter("container", PType.struct()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnExtract.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnExtract.kt index 9baa13d4a0..04c950cc5f 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnExtract.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnExtract.kt @@ -4,22 +4,22 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType import org.partiql.value.datetime.TimeZone // // Extract Year // -internal object Fn_EXTRACT_YEAR__DATE__INT32 : Fn { +internal object Fn_EXTRACT_YEAR__DATE__INT32 : Function { override val signature = FnSignature( name = "extract_year", returns = PType.integer(), parameters = listOf( - FnParameter("datetime", PType.date()), + Parameter("datetime", PType.date()), ), isNullCall = true, isNullable = false, @@ -31,13 +31,13 @@ internal object Fn_EXTRACT_YEAR__DATE__INT32 : Fn { } } -internal object Fn_EXTRACT_YEAR__TIMESTAMP__INT32 : Fn { +internal object Fn_EXTRACT_YEAR__TIMESTAMP__INT32 : Function { override val signature = FnSignature( name = "extract_year", returns = PType.integer(), parameters = listOf( - FnParameter("datetime", PType.timestamp(6)), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -52,13 +52,13 @@ internal object Fn_EXTRACT_YEAR__TIMESTAMP__INT32 : Fn { // // Extract Month // -internal object Fn_EXTRACT_MONTH__DATE__INT32 : Fn { +internal object Fn_EXTRACT_MONTH__DATE__INT32 : Function { override val signature = FnSignature( name = "extract_month", returns = PType.integer(), parameters = listOf( - FnParameter("datetime", PType.date()), + Parameter("datetime", PType.date()), ), isNullCall = true, isNullable = false, @@ -70,13 +70,13 @@ internal object Fn_EXTRACT_MONTH__DATE__INT32 : Fn { } } -internal object Fn_EXTRACT_MONTH__TIMESTAMP__INT32 : Fn { +internal object Fn_EXTRACT_MONTH__TIMESTAMP__INT32 : Function { override val signature = FnSignature( name = "extract_month", returns = PType.integer(), parameters = listOf( - FnParameter("datetime", PType.timestamp(6)), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -92,13 +92,13 @@ internal object Fn_EXTRACT_MONTH__TIMESTAMP__INT32 : Fn { // Extract Day // -internal object Fn_EXTRACT_DAY__DATE__INT32 : Fn { +internal object Fn_EXTRACT_DAY__DATE__INT32 : Function { override val signature = FnSignature( name = "extract_day", returns = PType.integer(), parameters = listOf( - FnParameter("datetime", PType.date()), + Parameter("datetime", PType.date()), ), isNullCall = true, isNullable = false, @@ -110,13 +110,13 @@ internal object Fn_EXTRACT_DAY__DATE__INT32 : Fn { } } -internal object Fn_EXTRACT_DAY__TIMESTAMP__INT32 : Fn { +internal object Fn_EXTRACT_DAY__TIMESTAMP__INT32 : Function { override val signature = FnSignature( name = "extract_day", returns = PType.integer(), parameters = listOf( - FnParameter("datetime", PType.timestamp(6)), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -131,13 +131,13 @@ internal object Fn_EXTRACT_DAY__TIMESTAMP__INT32 : Fn { // // Extract Hour // -internal object Fn_EXTRACT_HOUR__TIME__INT32 : Fn { +internal object Fn_EXTRACT_HOUR__TIME__INT32 : Function { override val signature = FnSignature( name = "extract_hour", returns = PType.integer(), parameters = listOf( - FnParameter("datetime", PType.time(6)), + Parameter("datetime", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -149,13 +149,13 @@ internal object Fn_EXTRACT_HOUR__TIME__INT32 : Fn { } } -internal object Fn_EXTRACT_HOUR__TIMESTAMP__INT32 : Fn { +internal object Fn_EXTRACT_HOUR__TIMESTAMP__INT32 : Function { override val signature = FnSignature( name = "extract_hour", returns = PType.integer(), parameters = listOf( - FnParameter("datetime", PType.timestamp(6)), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -170,13 +170,13 @@ internal object Fn_EXTRACT_HOUR__TIMESTAMP__INT32 : Fn { // // Extract Minute // -internal object Fn_EXTRACT_MINUTE__TIME__INT32 : Fn { +internal object Fn_EXTRACT_MINUTE__TIME__INT32 : Function { override val signature = FnSignature( name = "extract_minute", returns = PType.integer(), parameters = listOf( - FnParameter("datetime", PType.time(6)), + Parameter("datetime", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -188,13 +188,13 @@ internal object Fn_EXTRACT_MINUTE__TIME__INT32 : Fn { } } -internal object Fn_EXTRACT_MINUTE__TIMESTAMP__INT32 : Fn { +internal object Fn_EXTRACT_MINUTE__TIMESTAMP__INT32 : Function { override val signature = FnSignature( name = "extract_minute", returns = PType.integer(), parameters = listOf( - FnParameter("datetime", PType.timestamp(6)), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -209,13 +209,13 @@ internal object Fn_EXTRACT_MINUTE__TIMESTAMP__INT32 : Fn { // // Extract Second // -internal object Fn_EXTRACT_SECOND__TIME__DECIMAL_ARBITRARY : Fn { +internal object Fn_EXTRACT_SECOND__TIME__DECIMAL_ARBITRARY : Function { override val signature = FnSignature( name = "extract_second", returns = PType.decimal(), parameters = listOf( - FnParameter("datetime", PType.time(6)), + Parameter("datetime", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -227,13 +227,13 @@ internal object Fn_EXTRACT_SECOND__TIME__DECIMAL_ARBITRARY : Fn { } } -internal object Fn_EXTRACT_SECOND__TIMESTAMP__DECIMAL_ARBITRARY : Fn { +internal object Fn_EXTRACT_SECOND__TIMESTAMP__DECIMAL_ARBITRARY : Function { override val signature = FnSignature( name = "extract_second", returns = PType.decimal(), parameters = listOf( - FnParameter("datetime", PType.timestamp(6)), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -248,13 +248,13 @@ internal object Fn_EXTRACT_SECOND__TIMESTAMP__DECIMAL_ARBITRARY : Fn { // // Extract Timezone Hour // -internal object Fn_EXTRACT_TIMEZONE_HOUR__TIME__INT32 : Fn { +internal object Fn_EXTRACT_TIMEZONE_HOUR__TIME__INT32 : Function { override val signature = FnSignature( name = "extract_timezone_hour", returns = PType.integer(), parameters = listOf( - FnParameter("datetime", PType.time(6)), + Parameter("datetime", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -270,13 +270,13 @@ internal object Fn_EXTRACT_TIMEZONE_HOUR__TIME__INT32 : Fn { } } -internal object Fn_EXTRACT_TIMEZONE_HOUR__TIMESTAMP__INT32 : Fn { +internal object Fn_EXTRACT_TIMEZONE_HOUR__TIMESTAMP__INT32 : Function { override val signature = FnSignature( name = "extract_timezone_hour", returns = PType.integer(), parameters = listOf( - FnParameter("datetime", PType.timestamp(6)), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -295,13 +295,13 @@ internal object Fn_EXTRACT_TIMEZONE_HOUR__TIMESTAMP__INT32 : Fn { // // Extract Timezone Minute // -internal object Fn_EXTRACT_TIMEZONE_MINUTE__TIME__INT32 : Fn { +internal object Fn_EXTRACT_TIMEZONE_MINUTE__TIME__INT32 : Function { override val signature = FnSignature( name = "extract_timezone_minute", returns = PType.integer(), parameters = listOf( - FnParameter("datetime", PType.time(6)), + Parameter("datetime", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -317,13 +317,13 @@ internal object Fn_EXTRACT_TIMEZONE_MINUTE__TIME__INT32 : Fn { } } -internal object Fn_EXTRACT_TIMEZONE_MINUTE__TIMESTAMP__INT32 : Fn { +internal object Fn_EXTRACT_TIMEZONE_MINUTE__TIMESTAMP__INT32 : Function { override val signature = FnSignature( name = "extract_timezone_minute", returns = PType.integer(), parameters = listOf( - FnParameter("datetime", PType.timestamp(6)), + Parameter("datetime", PType.timestamp(6)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnGt.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnGt.kt index 5789bc637e..bb33d3834d 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnGt.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnGt.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_GT__INT8_INT8__BOOL : Fn { +internal object Fn_GT__INT8_INT8__BOOL : Function { override val signature = FnSignature( name = "gt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.tinyint()), - FnParameter("rhs", PType.tinyint()), + Parameter("lhs", PType.tinyint()), + Parameter("rhs", PType.tinyint()), ), isNullCall = true, isNullable = false, @@ -29,14 +29,14 @@ internal object Fn_GT__INT8_INT8__BOOL : Fn { } } -internal object Fn_GT__INT16_INT16__BOOL : Fn { +internal object Fn_GT__INT16_INT16__BOOL : Function { override val signature = FnSignature( name = "gt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.smallint()), - FnParameter("rhs", PType.smallint()), + Parameter("lhs", PType.smallint()), + Parameter("rhs", PType.smallint()), ), isNullCall = true, isNullable = false, @@ -49,14 +49,14 @@ internal object Fn_GT__INT16_INT16__BOOL : Fn { } } -internal object Fn_GT__INT32_INT32__BOOL : Fn { +internal object Fn_GT__INT32_INT32__BOOL : Function { override val signature = FnSignature( name = "gt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.integer()), - FnParameter("rhs", PType.integer()), + Parameter("lhs", PType.integer()), + Parameter("rhs", PType.integer()), ), isNullCall = true, isNullable = false, @@ -69,14 +69,14 @@ internal object Fn_GT__INT32_INT32__BOOL : Fn { } } -internal object Fn_GT__INT64_INT64__BOOL : Fn { +internal object Fn_GT__INT64_INT64__BOOL : Function { override val signature = FnSignature( name = "gt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.bigint()), - FnParameter("rhs", PType.bigint()), + Parameter("lhs", PType.bigint()), + Parameter("rhs", PType.bigint()), ), isNullCall = true, isNullable = false, @@ -89,14 +89,14 @@ internal object Fn_GT__INT64_INT64__BOOL : Fn { } } -internal object Fn_GT__INT_INT__BOOL : Fn { +internal object Fn_GT__INT_INT__BOOL : Function { override val signature = FnSignature( name = "gt", returns = PType.bool(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.numeric()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("lhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("rhs", PType.numeric()), ), isNullCall = true, isNullable = false, @@ -109,14 +109,14 @@ internal object Fn_GT__INT_INT__BOOL : Fn { } } -internal object Fn_GT__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__BOOL : Fn { +internal object Fn_GT__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__BOOL : Function { override val signature = FnSignature( name = "gt", returns = PType.bool(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.decimal()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("lhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("rhs", PType.decimal()), ), isNullCall = true, isNullable = false, @@ -129,14 +129,14 @@ internal object Fn_GT__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__BOOL : Fn { } } -internal object Fn_GT__FLOAT32_FLOAT32__BOOL : Fn { +internal object Fn_GT__FLOAT32_FLOAT32__BOOL : Function { override val signature = FnSignature( name = "gt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.real()), - FnParameter("rhs", PType.real()), + Parameter("lhs", PType.real()), + Parameter("rhs", PType.real()), ), isNullCall = true, isNullable = false, @@ -149,14 +149,14 @@ internal object Fn_GT__FLOAT32_FLOAT32__BOOL : Fn { } } -internal object Fn_GT__FLOAT64_FLOAT64__BOOL : Fn { +internal object Fn_GT__FLOAT64_FLOAT64__BOOL : Function { override val signature = FnSignature( name = "gt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.doublePrecision()), - FnParameter("rhs", PType.doublePrecision()), + Parameter("lhs", PType.doublePrecision()), + Parameter("rhs", PType.doublePrecision()), ), isNullCall = true, isNullable = false, @@ -169,14 +169,14 @@ internal object Fn_GT__FLOAT64_FLOAT64__BOOL : Fn { } } -internal object Fn_GT__STRING_STRING__BOOL : Fn { +internal object Fn_GT__STRING_STRING__BOOL : Function { override val signature = FnSignature( name = "gt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.string()), - FnParameter("rhs", PType.string()), + Parameter("lhs", PType.string()), + Parameter("rhs", PType.string()), ), isNullCall = true, isNullable = false, @@ -189,14 +189,14 @@ internal object Fn_GT__STRING_STRING__BOOL : Fn { } } -internal object Fn_GT__SYMBOL_SYMBOL__BOOL : Fn { +internal object Fn_GT__SYMBOL_SYMBOL__BOOL : Function { override val signature = FnSignature( name = "gt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.symbol()), - FnParameter("rhs", PType.symbol()), + Parameter("lhs", PType.symbol()), + Parameter("rhs", PType.symbol()), ), isNullCall = true, isNullable = false, @@ -209,14 +209,14 @@ internal object Fn_GT__SYMBOL_SYMBOL__BOOL : Fn { } } -internal object Fn_GT__DATE_DATE__BOOL : Fn { +internal object Fn_GT__DATE_DATE__BOOL : Function { override val signature = FnSignature( name = "gt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.date()), - FnParameter("rhs", PType.date()), + Parameter("lhs", PType.date()), + Parameter("rhs", PType.date()), ), isNullCall = true, isNullable = false, @@ -229,14 +229,14 @@ internal object Fn_GT__DATE_DATE__BOOL : Fn { } } -internal object Fn_GT__TIME_TIME__BOOL : Fn { +internal object Fn_GT__TIME_TIME__BOOL : Function { override val signature = FnSignature( name = "gt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.time(6)), - FnParameter("rhs", PType.time(6)), + Parameter("lhs", PType.time(6)), + Parameter("rhs", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -249,14 +249,14 @@ internal object Fn_GT__TIME_TIME__BOOL : Fn { } } -internal object Fn_GT__TIMESTAMP_TIMESTAMP__BOOL : Fn { +internal object Fn_GT__TIMESTAMP_TIMESTAMP__BOOL : Function { override val signature = FnSignature( name = "gt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.timestamp(6)), - FnParameter("rhs", PType.timestamp(6)), + Parameter("lhs", PType.timestamp(6)), + Parameter("rhs", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -269,14 +269,14 @@ internal object Fn_GT__TIMESTAMP_TIMESTAMP__BOOL : Fn { } } -internal object Fn_GT__BOOL_BOOL__BOOL : Fn { +internal object Fn_GT__BOOL_BOOL__BOOL : Function { override val signature = FnSignature( name = "gt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.bool()), - FnParameter("rhs", PType.bool()), + Parameter("lhs", PType.bool()), + Parameter("rhs", PType.bool()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnGte.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnGte.kt index a861262296..0a68269cdb 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnGte.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnGte.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_GTE__INT8_INT8__BOOL : Fn { +internal object Fn_GTE__INT8_INT8__BOOL : Function { override val signature = FnSignature( name = "gte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.tinyint()), - FnParameter("rhs", PType.tinyint()), + Parameter("lhs", PType.tinyint()), + Parameter("rhs", PType.tinyint()), ), isNullCall = true, isNullable = false, @@ -29,14 +29,14 @@ internal object Fn_GTE__INT8_INT8__BOOL : Fn { } } -internal object Fn_GTE__INT16_INT16__BOOL : Fn { +internal object Fn_GTE__INT16_INT16__BOOL : Function { override val signature = FnSignature( name = "gte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.smallint()), - FnParameter("rhs", PType.smallint()), + Parameter("lhs", PType.smallint()), + Parameter("rhs", PType.smallint()), ), isNullCall = true, isNullable = false, @@ -49,14 +49,14 @@ internal object Fn_GTE__INT16_INT16__BOOL : Fn { } } -internal object Fn_GTE__INT32_INT32__BOOL : Fn { +internal object Fn_GTE__INT32_INT32__BOOL : Function { override val signature = FnSignature( name = "gte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.integer()), - FnParameter("rhs", PType.integer()), + Parameter("lhs", PType.integer()), + Parameter("rhs", PType.integer()), ), isNullCall = true, isNullable = false, @@ -69,14 +69,14 @@ internal object Fn_GTE__INT32_INT32__BOOL : Fn { } } -internal object Fn_GTE__INT64_INT64__BOOL : Fn { +internal object Fn_GTE__INT64_INT64__BOOL : Function { override val signature = FnSignature( name = "gte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.bigint()), - FnParameter("rhs", PType.bigint()), + Parameter("lhs", PType.bigint()), + Parameter("rhs", PType.bigint()), ), isNullCall = true, isNullable = false, @@ -89,14 +89,14 @@ internal object Fn_GTE__INT64_INT64__BOOL : Fn { } } -internal object Fn_GTE__INT_INT__BOOL : Fn { +internal object Fn_GTE__INT_INT__BOOL : Function { override val signature = FnSignature( name = "gte", returns = PType.bool(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.numeric()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("lhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("rhs", PType.numeric()), ), isNullCall = true, isNullable = false, @@ -109,14 +109,14 @@ internal object Fn_GTE__INT_INT__BOOL : Fn { } } -internal object Fn_GTE__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__BOOL : Fn { +internal object Fn_GTE__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__BOOL : Function { override val signature = FnSignature( name = "gte", returns = PType.bool(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.decimal()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("lhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("rhs", PType.decimal()), ), isNullCall = true, isNullable = false, @@ -129,14 +129,14 @@ internal object Fn_GTE__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__BOOL : Fn { } } -internal object Fn_GTE__FLOAT32_FLOAT32__BOOL : Fn { +internal object Fn_GTE__FLOAT32_FLOAT32__BOOL : Function { override val signature = FnSignature( name = "gte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.real()), - FnParameter("rhs", PType.real()), + Parameter("lhs", PType.real()), + Parameter("rhs", PType.real()), ), isNullCall = true, isNullable = false, @@ -149,14 +149,14 @@ internal object Fn_GTE__FLOAT32_FLOAT32__BOOL : Fn { } } -internal object Fn_GTE__FLOAT64_FLOAT64__BOOL : Fn { +internal object Fn_GTE__FLOAT64_FLOAT64__BOOL : Function { override val signature = FnSignature( name = "gte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.doublePrecision()), - FnParameter("rhs", PType.doublePrecision()), + Parameter("lhs", PType.doublePrecision()), + Parameter("rhs", PType.doublePrecision()), ), isNullCall = true, isNullable = false, @@ -169,14 +169,14 @@ internal object Fn_GTE__FLOAT64_FLOAT64__BOOL : Fn { } } -internal object Fn_GTE__STRING_STRING__BOOL : Fn { +internal object Fn_GTE__STRING_STRING__BOOL : Function { override val signature = FnSignature( name = "gte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.string()), - FnParameter("rhs", PType.string()), + Parameter("lhs", PType.string()), + Parameter("rhs", PType.string()), ), isNullCall = true, isNullable = false, @@ -189,14 +189,14 @@ internal object Fn_GTE__STRING_STRING__BOOL : Fn { } } -internal object Fn_GTE__SYMBOL_SYMBOL__BOOL : Fn { +internal object Fn_GTE__SYMBOL_SYMBOL__BOOL : Function { override val signature = FnSignature( name = "gte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.symbol()), - FnParameter("rhs", PType.symbol()), + Parameter("lhs", PType.symbol()), + Parameter("rhs", PType.symbol()), ), isNullCall = true, isNullable = false, @@ -209,14 +209,14 @@ internal object Fn_GTE__SYMBOL_SYMBOL__BOOL : Fn { } } -internal object Fn_GTE__DATE_DATE__BOOL : Fn { +internal object Fn_GTE__DATE_DATE__BOOL : Function { override val signature = FnSignature( name = "gte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.date()), - FnParameter("rhs", PType.date()), + Parameter("lhs", PType.date()), + Parameter("rhs", PType.date()), ), isNullCall = true, isNullable = false, @@ -229,14 +229,14 @@ internal object Fn_GTE__DATE_DATE__BOOL : Fn { } } -internal object Fn_GTE__TIME_TIME__BOOL : Fn { +internal object Fn_GTE__TIME_TIME__BOOL : Function { override val signature = FnSignature( name = "gte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.time(6)), - FnParameter("rhs", PType.time(6)), + Parameter("lhs", PType.time(6)), + Parameter("rhs", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -249,14 +249,14 @@ internal object Fn_GTE__TIME_TIME__BOOL : Fn { } } -internal object Fn_GTE__TIMESTAMP_TIMESTAMP__BOOL : Fn { +internal object Fn_GTE__TIMESTAMP_TIMESTAMP__BOOL : Function { override val signature = FnSignature( name = "gte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.timestamp(6)), - FnParameter("rhs", PType.timestamp(6)), + Parameter("lhs", PType.timestamp(6)), + Parameter("rhs", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -269,14 +269,14 @@ internal object Fn_GTE__TIMESTAMP_TIMESTAMP__BOOL : Fn { } } -internal object Fn_GTE__BOOL_BOOL__BOOL : Fn { +internal object Fn_GTE__BOOL_BOOL__BOOL : Function { override val signature = FnSignature( name = "gte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.bool()), - FnParameter("rhs", PType.bool()), + Parameter("lhs", PType.bool()), + Parameter("rhs", PType.bool()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnInCollection.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnInCollection.kt index 890007cf83..089e46caa0 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnInCollection.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnInCollection.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IN_COLLECTION__ANY_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__ANY_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.dynamic()), - FnParameter("collection", PType.bag()), + Parameter("value", PType.dynamic()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -36,14 +36,14 @@ internal object Fn_IN_COLLECTION__ANY_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__ANY_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__ANY_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.dynamic()), - FnParameter("collection", PType.array()), + Parameter("value", PType.dynamic()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -63,14 +63,14 @@ internal object Fn_IN_COLLECTION__ANY_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__ANY_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__ANY_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.dynamic()), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.dynamic()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -90,14 +90,14 @@ internal object Fn_IN_COLLECTION__ANY_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__BOOL_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__BOOL_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.bool()), - FnParameter("collection", PType.bag()), + Parameter("value", PType.bool()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -117,14 +117,14 @@ internal object Fn_IN_COLLECTION__BOOL_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__BOOL_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__BOOL_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.bool()), - FnParameter("collection", PType.array()), + Parameter("value", PType.bool()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -144,14 +144,14 @@ internal object Fn_IN_COLLECTION__BOOL_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__BOOL_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__BOOL_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.bool()), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.bool()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -171,14 +171,14 @@ internal object Fn_IN_COLLECTION__BOOL_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__INT8_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__INT8_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.tinyint()), - FnParameter("collection", PType.bag()), + Parameter("value", PType.tinyint()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -198,14 +198,14 @@ internal object Fn_IN_COLLECTION__INT8_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__INT8_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__INT8_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.tinyint()), - FnParameter("collection", PType.array()), + Parameter("value", PType.tinyint()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -225,14 +225,14 @@ internal object Fn_IN_COLLECTION__INT8_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__INT8_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__INT8_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.tinyint()), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.tinyint()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -252,14 +252,14 @@ internal object Fn_IN_COLLECTION__INT8_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__INT16_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__INT16_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.smallint()), - FnParameter("collection", PType.bag()), + Parameter("value", PType.smallint()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -279,14 +279,14 @@ internal object Fn_IN_COLLECTION__INT16_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__INT16_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__INT16_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.smallint()), - FnParameter("collection", PType.array()), + Parameter("value", PType.smallint()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -306,14 +306,14 @@ internal object Fn_IN_COLLECTION__INT16_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__INT16_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__INT16_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.smallint()), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.smallint()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -333,14 +333,14 @@ internal object Fn_IN_COLLECTION__INT16_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__INT32_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__INT32_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.integer()), - FnParameter("collection", PType.bag()), + Parameter("value", PType.integer()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -360,14 +360,14 @@ internal object Fn_IN_COLLECTION__INT32_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__INT32_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__INT32_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.integer()), - FnParameter("collection", PType.array()), + Parameter("value", PType.integer()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -387,14 +387,14 @@ internal object Fn_IN_COLLECTION__INT32_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__INT32_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__INT32_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.integer()), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.integer()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -414,14 +414,14 @@ internal object Fn_IN_COLLECTION__INT32_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__INT64_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__INT64_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.bigint()), - FnParameter("collection", PType.bag()), + Parameter("value", PType.bigint()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -441,14 +441,14 @@ internal object Fn_IN_COLLECTION__INT64_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__INT64_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__INT64_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.bigint()), - FnParameter("collection", PType.array()), + Parameter("value", PType.bigint()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -468,14 +468,14 @@ internal object Fn_IN_COLLECTION__INT64_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__INT64_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__INT64_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.bigint()), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.bigint()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -495,14 +495,14 @@ internal object Fn_IN_COLLECTION__INT64_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__INT_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__INT_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("value", PType.numeric()), - FnParameter("collection", PType.bag()), + @Suppress("DEPRECATION") Parameter("value", PType.numeric()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -522,14 +522,14 @@ internal object Fn_IN_COLLECTION__INT_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__INT_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__INT_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("value", PType.numeric()), - FnParameter("collection", PType.array()), + @Suppress("DEPRECATION") Parameter("value", PType.numeric()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -549,14 +549,14 @@ internal object Fn_IN_COLLECTION__INT_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__INT_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__INT_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("value", PType.numeric()), - FnParameter("collection", PType.sexp()), + @Suppress("DEPRECATION") Parameter("value", PType.numeric()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -576,14 +576,14 @@ internal object Fn_IN_COLLECTION__INT_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__DECIMAL_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__DECIMAL_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.decimal()), - FnParameter("collection", PType.bag()), + Parameter("value", PType.decimal()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -603,14 +603,14 @@ internal object Fn_IN_COLLECTION__DECIMAL_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__DECIMAL_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__DECIMAL_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.decimal()), - FnParameter("collection", PType.array()), + Parameter("value", PType.decimal()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -630,14 +630,14 @@ internal object Fn_IN_COLLECTION__DECIMAL_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__DECIMAL_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__DECIMAL_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.decimal()), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.decimal()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -657,14 +657,14 @@ internal object Fn_IN_COLLECTION__DECIMAL_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__DECIMAL_ARBITRARY_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__DECIMAL_ARBITRARY_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("value", PType.decimal()), - FnParameter("collection", PType.bag()), + @Suppress("DEPRECATION") Parameter("value", PType.decimal()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -684,14 +684,14 @@ internal object Fn_IN_COLLECTION__DECIMAL_ARBITRARY_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__DECIMAL_ARBITRARY_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__DECIMAL_ARBITRARY_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("value", PType.decimal()), - FnParameter("collection", PType.array()), + @Suppress("DEPRECATION") Parameter("value", PType.decimal()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -711,14 +711,14 @@ internal object Fn_IN_COLLECTION__DECIMAL_ARBITRARY_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__DECIMAL_ARBITRARY_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__DECIMAL_ARBITRARY_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("value", PType.decimal()), - FnParameter("collection", PType.sexp()), + @Suppress("DEPRECATION") Parameter("value", PType.decimal()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -738,14 +738,14 @@ internal object Fn_IN_COLLECTION__DECIMAL_ARBITRARY_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__FLOAT32_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__FLOAT32_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.real()), - FnParameter("collection", PType.bag()), + Parameter("value", PType.real()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -765,14 +765,14 @@ internal object Fn_IN_COLLECTION__FLOAT32_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__FLOAT32_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__FLOAT32_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.real()), - FnParameter("collection", PType.array()), + Parameter("value", PType.real()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -792,14 +792,14 @@ internal object Fn_IN_COLLECTION__FLOAT32_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__FLOAT32_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__FLOAT32_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.real()), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.real()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -819,14 +819,14 @@ internal object Fn_IN_COLLECTION__FLOAT32_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__FLOAT64_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__FLOAT64_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.doublePrecision()), - FnParameter("collection", PType.bag()), + Parameter("value", PType.doublePrecision()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -846,14 +846,14 @@ internal object Fn_IN_COLLECTION__FLOAT64_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__FLOAT64_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__FLOAT64_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.doublePrecision()), - FnParameter("collection", PType.array()), + Parameter("value", PType.doublePrecision()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -873,14 +873,14 @@ internal object Fn_IN_COLLECTION__FLOAT64_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__FLOAT64_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__FLOAT64_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.doublePrecision()), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.doublePrecision()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -900,14 +900,14 @@ internal object Fn_IN_COLLECTION__FLOAT64_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__CHAR_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__CHAR_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.character(255)), - FnParameter("collection", PType.bag()), + Parameter("value", PType.character(255)), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -927,14 +927,14 @@ internal object Fn_IN_COLLECTION__CHAR_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__CHAR_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__CHAR_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.character(255)), - FnParameter("collection", PType.array()), + Parameter("value", PType.character(255)), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -954,14 +954,14 @@ internal object Fn_IN_COLLECTION__CHAR_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__CHAR_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__CHAR_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.character(255)), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.character(255)), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -981,14 +981,14 @@ internal object Fn_IN_COLLECTION__CHAR_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__STRING_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__STRING_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.string()), - FnParameter("collection", PType.bag()), + Parameter("value", PType.string()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -1008,14 +1008,14 @@ internal object Fn_IN_COLLECTION__STRING_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__STRING_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__STRING_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.string()), - FnParameter("collection", PType.array()), + Parameter("value", PType.string()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -1035,14 +1035,14 @@ internal object Fn_IN_COLLECTION__STRING_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__STRING_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__STRING_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.string()), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.string()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -1062,14 +1062,14 @@ internal object Fn_IN_COLLECTION__STRING_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__SYMBOL_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__SYMBOL_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.symbol()), - FnParameter("collection", PType.bag()), + Parameter("value", PType.symbol()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -1089,14 +1089,14 @@ internal object Fn_IN_COLLECTION__SYMBOL_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__SYMBOL_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__SYMBOL_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.symbol()), - FnParameter("collection", PType.array()), + Parameter("value", PType.symbol()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -1116,14 +1116,14 @@ internal object Fn_IN_COLLECTION__SYMBOL_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__SYMBOL_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__SYMBOL_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.symbol()), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.symbol()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -1143,14 +1143,14 @@ internal object Fn_IN_COLLECTION__SYMBOL_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__BLOB_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__BLOB_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.blob(Int.MAX_VALUE)), - FnParameter("collection", PType.bag()), + Parameter("value", PType.blob(Int.MAX_VALUE)), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -1170,14 +1170,14 @@ internal object Fn_IN_COLLECTION__BLOB_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__BLOB_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__BLOB_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.blob(Int.MAX_VALUE)), - FnParameter("collection", PType.array()), + Parameter("value", PType.blob(Int.MAX_VALUE)), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -1197,14 +1197,14 @@ internal object Fn_IN_COLLECTION__BLOB_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__BLOB_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__BLOB_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.blob(Int.MAX_VALUE)), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.blob(Int.MAX_VALUE)), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -1224,14 +1224,14 @@ internal object Fn_IN_COLLECTION__BLOB_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__CLOB_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__CLOB_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.clob(Int.MAX_VALUE)), - FnParameter("collection", PType.bag()), + Parameter("value", PType.clob(Int.MAX_VALUE)), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -1251,14 +1251,14 @@ internal object Fn_IN_COLLECTION__CLOB_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__CLOB_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__CLOB_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.clob(Int.MAX_VALUE)), - FnParameter("collection", PType.array()), + Parameter("value", PType.clob(Int.MAX_VALUE)), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -1278,14 +1278,14 @@ internal object Fn_IN_COLLECTION__CLOB_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__CLOB_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__CLOB_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.clob(Int.MAX_VALUE)), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.clob(Int.MAX_VALUE)), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -1305,14 +1305,14 @@ internal object Fn_IN_COLLECTION__CLOB_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__DATE_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__DATE_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.date()), - FnParameter("collection", PType.bag()), + Parameter("value", PType.date()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -1332,14 +1332,14 @@ internal object Fn_IN_COLLECTION__DATE_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__DATE_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__DATE_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.date()), - FnParameter("collection", PType.array()), + Parameter("value", PType.date()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -1359,14 +1359,14 @@ internal object Fn_IN_COLLECTION__DATE_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__DATE_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__DATE_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.date()), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.date()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -1386,14 +1386,14 @@ internal object Fn_IN_COLLECTION__DATE_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__TIME_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__TIME_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.time(6)), - FnParameter("collection", PType.bag()), + Parameter("value", PType.time(6)), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -1413,14 +1413,14 @@ internal object Fn_IN_COLLECTION__TIME_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__TIME_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__TIME_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.time(6)), - FnParameter("collection", PType.array()), + Parameter("value", PType.time(6)), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -1440,14 +1440,14 @@ internal object Fn_IN_COLLECTION__TIME_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__TIME_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__TIME_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.time(6)), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.time(6)), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -1467,14 +1467,14 @@ internal object Fn_IN_COLLECTION__TIME_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__TIMESTAMP_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__TIMESTAMP_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.timestamp(6)), - FnParameter("collection", PType.bag()), + Parameter("value", PType.timestamp(6)), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -1494,14 +1494,14 @@ internal object Fn_IN_COLLECTION__TIMESTAMP_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__TIMESTAMP_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__TIMESTAMP_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.timestamp(6)), - FnParameter("collection", PType.array()), + Parameter("value", PType.timestamp(6)), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -1521,14 +1521,14 @@ internal object Fn_IN_COLLECTION__TIMESTAMP_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__TIMESTAMP_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__TIMESTAMP_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.timestamp(6)), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.timestamp(6)), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -1548,14 +1548,14 @@ internal object Fn_IN_COLLECTION__TIMESTAMP_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__BAG_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__BAG_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.bag()), - FnParameter("collection", PType.bag()), + Parameter("value", PType.bag()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -1575,14 +1575,14 @@ internal object Fn_IN_COLLECTION__BAG_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__BAG_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__BAG_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.bag()), - FnParameter("collection", PType.array()), + Parameter("value", PType.bag()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -1602,14 +1602,14 @@ internal object Fn_IN_COLLECTION__BAG_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__BAG_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__BAG_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.bag()), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.bag()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -1629,14 +1629,14 @@ internal object Fn_IN_COLLECTION__BAG_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__LIST_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__LIST_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.array()), - FnParameter("collection", PType.bag()), + Parameter("value", PType.array()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -1656,14 +1656,14 @@ internal object Fn_IN_COLLECTION__LIST_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__LIST_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__LIST_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.array()), - FnParameter("collection", PType.array()), + Parameter("value", PType.array()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -1683,14 +1683,14 @@ internal object Fn_IN_COLLECTION__LIST_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__LIST_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__LIST_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.array()), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.array()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -1710,14 +1710,14 @@ internal object Fn_IN_COLLECTION__LIST_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__SEXP_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__SEXP_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.sexp()), - FnParameter("collection", PType.bag()), + Parameter("value", PType.sexp()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -1737,14 +1737,14 @@ internal object Fn_IN_COLLECTION__SEXP_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__SEXP_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__SEXP_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.sexp()), - FnParameter("collection", PType.array()), + Parameter("value", PType.sexp()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -1764,14 +1764,14 @@ internal object Fn_IN_COLLECTION__SEXP_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__SEXP_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__SEXP_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.sexp()), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.sexp()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -1791,14 +1791,14 @@ internal object Fn_IN_COLLECTION__SEXP_SEXP__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__STRUCT_BAG__BOOL : Fn { +internal object Fn_IN_COLLECTION__STRUCT_BAG__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.struct()), - FnParameter("collection", PType.bag()), + Parameter("value", PType.struct()), + Parameter("collection", PType.bag()), ), isNullCall = true, isNullable = false, @@ -1818,14 +1818,14 @@ internal object Fn_IN_COLLECTION__STRUCT_BAG__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__STRUCT_LIST__BOOL : Fn { +internal object Fn_IN_COLLECTION__STRUCT_LIST__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.struct()), - FnParameter("collection", PType.array()), + Parameter("value", PType.struct()), + Parameter("collection", PType.array()), ), isNullCall = true, isNullable = false, @@ -1845,14 +1845,14 @@ internal object Fn_IN_COLLECTION__STRUCT_LIST__BOOL : Fn { } } -internal object Fn_IN_COLLECTION__STRUCT_SEXP__BOOL : Fn { +internal object Fn_IN_COLLECTION__STRUCT_SEXP__BOOL : Function { override val signature = FnSignature( name = "in_collection", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.struct()), - FnParameter("collection", PType.sexp()), + Parameter("value", PType.struct()), + Parameter("collection", PType.sexp()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsAny.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsAny.kt index c5b2ea82f4..ae56d1eb38 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsAny.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsAny.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_ANY__ANY__BOOL : Fn { +internal object Fn_IS_ANY__ANY__BOOL : Function { override val signature = FnSignature( name = "is_any", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = false, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsBag.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsBag.kt index d2afbd9d69..2307225331 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsBag.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsBag.kt @@ -4,18 +4,18 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType import org.partiql.types.PType.Kind -internal object Fn_IS_BAG__ANY__BOOL : Fn { +internal object Fn_IS_BAG__ANY__BOOL : Function { override val signature = FnSignature( name = "is_bag", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsBinary.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsBinary.kt index 37e7c7076d..6a93cfeb5c 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsBinary.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsBinary.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_BINARY__ANY__BOOL : Fn { +internal object Fn_IS_BINARY__ANY__BOOL : Function { override val signature = FnSignature( name = "is_binary", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsBlob.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsBlob.kt index 76c14df863..b3e1223822 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsBlob.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsBlob.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_BLOB__ANY__BOOL : Fn { +internal object Fn_IS_BLOB__ANY__BOOL : Function { override val signature = FnSignature( name = "is_blob", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsBool.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsBool.kt index 4ecd8c0217..def94aaa8c 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsBool.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsBool.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_BOOL__ANY__BOOL : Fn { +internal object Fn_IS_BOOL__ANY__BOOL : Function { override val signature = FnSignature( name = "is_bool", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsByte.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsByte.kt index 69d17f7b80..aeaa5daeaa 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsByte.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsByte.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_BYTE__ANY__BOOL : Fn { +internal object Fn_IS_BYTE__ANY__BOOL : Function { override val signature = FnSignature( name = "is_byte", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsChar.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsChar.kt index f4a30e2b39..4968a06635 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsChar.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsChar.kt @@ -5,17 +5,17 @@ package org.partiql.spi.fn.builtins import org.partiql.errors.TypeCheckException import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_CHAR__ANY__BOOL : Fn { +internal object Fn_IS_CHAR__ANY__BOOL : Function { override val signature = FnSignature( name = "is_char", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) @@ -25,14 +25,14 @@ internal object Fn_IS_CHAR__ANY__BOOL : Fn { } } -internal object Fn_IS_CHAR__INT32_ANY__BOOL : Fn { +internal object Fn_IS_CHAR__INT32_ANY__BOOL : Function { override val signature = FnSignature( name = "is_char", returns = PType.bool(), parameters = listOf( - FnParameter("type_parameter_1", PType.integer()), - FnParameter("value", PType.dynamic()), + Parameter("type_parameter_1", PType.integer()), + Parameter("value", PType.dynamic()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsClob.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsClob.kt index b5aa9564d9..42e24f9aa5 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsClob.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsClob.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_CLOB__ANY__BOOL : Fn { +internal object Fn_IS_CLOB__ANY__BOOL : Function { override val signature = FnSignature( name = "is_clob", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsDate.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsDate.kt index f1278c27b0..936c8cc177 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsDate.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsDate.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_DATE__ANY__BOOL : Fn { +internal object Fn_IS_DATE__ANY__BOOL : Function { override val signature = FnSignature( name = "is_date", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsDecimal.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsDecimal.kt index f00d32301a..8593c56397 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsDecimal.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsDecimal.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType import java.math.RoundingMode import kotlin.math.max -internal object Fn_IS_DECIMAL__ANY__BOOL : Fn { +internal object Fn_IS_DECIMAL__ANY__BOOL : Function { override val signature = FnSignature( name = "is_decimal", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) @@ -26,15 +26,15 @@ internal object Fn_IS_DECIMAL__ANY__BOOL : Fn { } } -internal object Fn_IS_DECIMAL__INT32_INT32_ANY__BOOL : Fn { +internal object Fn_IS_DECIMAL__INT32_INT32_ANY__BOOL : Function { override val signature = FnSignature( name = "is_decimal", returns = PType.bool(), parameters = listOf( - FnParameter("type_parameter_1", PType.integer()), - FnParameter("type_parameter_2", PType.integer()), - FnParameter("value", PType.dynamic()), + Parameter("type_parameter_1", PType.integer()), + Parameter("type_parameter_2", PType.integer()), + Parameter("value", PType.dynamic()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsDecimalArbitrary.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsDecimalArbitrary.kt index 2ca5c4822f..c076297ab4 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsDecimalArbitrary.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsDecimalArbitrary.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_DECIMAL_ARBITRARY__ANY__BOOL : Fn { +internal object Fn_IS_DECIMAL_ARBITRARY__ANY__BOOL : Function { override val signature = FnSignature( name = "is_decimal_arbitrary", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsFloat32.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsFloat32.kt index a4846627d0..513acf6e1e 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsFloat32.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsFloat32.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_FLOAT32__ANY__BOOL : Fn { +internal object Fn_IS_FLOAT32__ANY__BOOL : Function { override val signature = FnSignature( name = "is_float32", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsFloat64.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsFloat64.kt index 6990fed590..d2fb37224d 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsFloat64.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsFloat64.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_FLOAT64__ANY__BOOL : Fn { +internal object Fn_IS_FLOAT64__ANY__BOOL : Function { override val signature = FnSignature( name = "is_float64", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt.kt index 317de01fb7..75965d7cd8 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_INT__ANY__BOOL : Fn { +internal object Fn_IS_INT__ANY__BOOL : Function { override val signature = FnSignature( name = "is_int", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt16.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt16.kt index 4bd3ad7154..fbddba1283 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt16.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt16.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_INT16__ANY__BOOL : Fn { +internal object Fn_IS_INT16__ANY__BOOL : Function { override val signature = FnSignature( name = "is_int16", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt32.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt32.kt index 8a267cf57a..2b4b5d4c7d 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt32.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt32.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_INT32__ANY__BOOL : Fn { +internal object Fn_IS_INT32__ANY__BOOL : Function { override val signature = FnSignature( name = "is_int32", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt64.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt64.kt index 9bcfa8750c..b44f9cd66f 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt64.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt64.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_INT64__ANY__BOOL : Fn { +internal object Fn_IS_INT64__ANY__BOOL : Function { override val signature = FnSignature( name = "is_int64", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt8.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt8.kt index 9ef658b3e1..bc4a85eab4 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt8.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInt8.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_INT8__ANY__BOOL : Fn { +internal object Fn_IS_INT8__ANY__BOOL : Function { override val signature = FnSignature( name = "is_int8", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInterval.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInterval.kt index 2fa2ae3a8a..6af2358606 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInterval.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsInterval.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_INTERVAL__ANY__BOOL : Fn { +internal object Fn_IS_INTERVAL__ANY__BOOL : Function { override val signature = FnSignature( name = "is_interval", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsList.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsList.kt index e000a4f97b..2262874db1 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsList.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsList.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_LIST__ANY__BOOL : Fn { +internal object Fn_IS_LIST__ANY__BOOL : Function { override val signature = FnSignature( name = "is_list", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsMissing.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsMissing.kt index 04aa24c076..e71b2857e2 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsMissing.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsMissing.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_MISSING__ANY__BOOL : Fn { +internal object Fn_IS_MISSING__ANY__BOOL : Function { override val signature = FnSignature( name = "is_missing", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullable = false, isNullCall = false, isMissable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsNull.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsNull.kt index 61e44e1b4f..ff39a7a4b5 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsNull.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsNull.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_NULL__ANY__BOOL : Fn { +internal object Fn_IS_NULL__ANY__BOOL : Function { override val signature = FnSignature( name = "is_null", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullable = false, isNullCall = false, isMissable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsSexp.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsSexp.kt index 4342326a58..307c25ea88 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsSexp.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsSexp.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_SEXP__ANY__BOOL : Fn { +internal object Fn_IS_SEXP__ANY__BOOL : Function { override val signature = FnSignature( name = "is_sexp", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsString.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsString.kt index 58f2125894..bc9705bbbe 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsString.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsString.kt @@ -5,17 +5,17 @@ package org.partiql.spi.fn.builtins import org.partiql.errors.TypeCheckException import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_STRING__ANY__BOOL : Fn { +internal object Fn_IS_STRING__ANY__BOOL : Function { override val signature = FnSignature( name = "is_string", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) @@ -25,14 +25,14 @@ internal object Fn_IS_STRING__ANY__BOOL : Fn { } } -internal object Fn_IS_STRING__INT32_ANY__BOOL : Fn { +internal object Fn_IS_STRING__INT32_ANY__BOOL : Function { override val signature = FnSignature( name = "is_string", returns = PType.bool(), parameters = listOf( - FnParameter("type_parameter_1", PType.integer()), - FnParameter("value", PType.dynamic()), + Parameter("type_parameter_1", PType.integer()), + Parameter("value", PType.dynamic()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsStruct.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsStruct.kt index dbd7d459b1..9f5e848798 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsStruct.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsStruct.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_STRUCT__ANY__BOOL : Fn { +internal object Fn_IS_STRUCT__ANY__BOOL : Function { override val signature = FnSignature( name = "is_struct", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsSymbol.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsSymbol.kt index 0ff2360578..e95fa0ad1b 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsSymbol.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsSymbol.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_SYMBOL__ANY__BOOL : Fn { +internal object Fn_IS_SYMBOL__ANY__BOOL : Function { override val signature = FnSignature( name = "is_symbol", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsTime.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsTime.kt index 7b3ef46f9b..00e0637804 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsTime.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsTime.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_TIME__ANY__BOOL : Fn { +internal object Fn_IS_TIME__ANY__BOOL : Function { override val signature = FnSignature( name = "is_time", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) @@ -25,15 +25,15 @@ internal object Fn_IS_TIME__ANY__BOOL : Fn { } } -internal object Fn_IS_TIME__BOOL_INT32_ANY__BOOL : Fn { +internal object Fn_IS_TIME__BOOL_INT32_ANY__BOOL : Function { override val signature = FnSignature( name = "is_time", returns = PType.bool(), parameters = listOf( - FnParameter("type_parameter_1", PType.bool()), - FnParameter("type_parameter_2", PType.integer()), - FnParameter("value", PType.dynamic()), + Parameter("type_parameter_1", PType.bool()), + Parameter("type_parameter_2", PType.integer()), + Parameter("value", PType.dynamic()), ), isNullCall = false, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsTimestamp.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsTimestamp.kt index 31ebf22543..718307ecfb 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsTimestamp.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnIsTimestamp.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_IS_TIMESTAMP__ANY__BOOL : Fn { +internal object Fn_IS_TIMESTAMP__ANY__BOOL : Function { override val signature = FnSignature( name = "is_timestamp", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.dynamic())), + parameters = listOf(Parameter("value", PType.dynamic())), isNullCall = true, isNullable = false, ) @@ -25,15 +25,15 @@ internal object Fn_IS_TIMESTAMP__ANY__BOOL : Fn { } } -internal object Fn_IS_TIMESTAMP__BOOL_INT32_ANY__BOOL : Fn { +internal object Fn_IS_TIMESTAMP__BOOL_INT32_ANY__BOOL : Function { override val signature = FnSignature( name = "is_timestamp", returns = PType.bool(), parameters = listOf( - FnParameter("type_parameter_1", PType.bool()), - FnParameter("type_parameter_2", PType.integer()), - FnParameter("value", PType.dynamic()), + Parameter("type_parameter_1", PType.bool()), + Parameter("type_parameter_2", PType.integer()), + Parameter("value", PType.dynamic()), ), isNullCall = false, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLike.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLike.kt index 8bc6c5a78d..0b1d9dadd9 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLike.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLike.kt @@ -4,22 +4,22 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.utils.PatternUtils.matchRegexPattern import org.partiql.spi.fn.utils.PatternUtils.parsePattern import org.partiql.types.PType import java.util.regex.Pattern -internal object Fn_LIKE__STRING_STRING__BOOL : Fn { +internal object Fn_LIKE__STRING_STRING__BOOL : Function { override val signature = FnSignature( name = "like", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.string()), - FnParameter("pattern", PType.string()), + Parameter("value", PType.string()), + Parameter("pattern", PType.string()), ), isNullCall = true, isNullable = false, @@ -39,14 +39,14 @@ internal object Fn_LIKE__STRING_STRING__BOOL : Fn { } } -internal object Fn_LIKE__SYMBOL_SYMBOL__BOOL : Fn { +internal object Fn_LIKE__SYMBOL_SYMBOL__BOOL : Function { override val signature = FnSignature( name = "like", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.symbol()), - FnParameter("pattern", PType.symbol()), + Parameter("value", PType.symbol()), + Parameter("pattern", PType.symbol()), ), isNullCall = true, isNullable = false, @@ -66,14 +66,14 @@ internal object Fn_LIKE__SYMBOL_SYMBOL__BOOL : Fn { } } -internal object Fn_LIKE__CLOB_CLOB__BOOL : Fn { +internal object Fn_LIKE__CLOB_CLOB__BOOL : Function { override val signature = FnSignature( name = "like", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.clob(Int.MAX_VALUE)), - FnParameter("pattern", PType.clob(Int.MAX_VALUE)), + Parameter("value", PType.clob(Int.MAX_VALUE)), + Parameter("pattern", PType.clob(Int.MAX_VALUE)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLikeEscape.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLikeEscape.kt index e335857d0e..d741032809 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLikeEscape.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLikeEscape.kt @@ -5,24 +5,24 @@ package org.partiql.spi.fn.builtins import org.partiql.errors.TypeCheckException import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.utils.PatternUtils import org.partiql.spi.fn.utils.PatternUtils.checkPattern import org.partiql.spi.fn.utils.PatternUtils.parsePattern import org.partiql.types.PType import java.util.regex.Pattern -internal object Fn_LIKE_ESCAPE__STRING_STRING_STRING__BOOL : Fn { +internal object Fn_LIKE_ESCAPE__STRING_STRING_STRING__BOOL : Function { override val signature = FnSignature( name = "like_escape", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.string()), - FnParameter("pattern", PType.string()), - FnParameter("escape", PType.string()), + Parameter("value", PType.string()), + Parameter("pattern", PType.string()), + Parameter("escape", PType.string()), ), isNullCall = true, isNullable = false, @@ -49,15 +49,15 @@ internal object Fn_LIKE_ESCAPE__STRING_STRING_STRING__BOOL : Fn { } } -internal object Fn_LIKE_ESCAPE__SYMBOL_SYMBOL_SYMBOL__BOOL : Fn { +internal object Fn_LIKE_ESCAPE__SYMBOL_SYMBOL_SYMBOL__BOOL : Function { override val signature = FnSignature( name = "like_escape", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.symbol()), - FnParameter("pattern", PType.symbol()), - FnParameter("escape", PType.symbol()), + Parameter("value", PType.symbol()), + Parameter("pattern", PType.symbol()), + Parameter("escape", PType.symbol()), ), isNullCall = true, isNullable = false, @@ -84,15 +84,15 @@ internal object Fn_LIKE_ESCAPE__SYMBOL_SYMBOL_SYMBOL__BOOL : Fn { } } -internal object Fn_LIKE_ESCAPE__CLOB_CLOB_CLOB__BOOL : Fn { +internal object Fn_LIKE_ESCAPE__CLOB_CLOB_CLOB__BOOL : Function { override val signature = FnSignature( name = "like_escape", returns = PType.bool(), parameters = listOf( - FnParameter("value", PType.clob(Int.MAX_VALUE)), - FnParameter("pattern", PType.clob(Int.MAX_VALUE)), - FnParameter("escape", PType.clob(Int.MAX_VALUE)), + Parameter("value", PType.clob(Int.MAX_VALUE)), + Parameter("pattern", PType.clob(Int.MAX_VALUE)), + Parameter("escape", PType.clob(Int.MAX_VALUE)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLower.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLower.kt index c88a7f8912..9a5eedf516 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLower.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLower.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_LOWER__STRING__STRING : Fn { +internal object Fn_LOWER__STRING__STRING : Function { override val signature = FnSignature( name = "lower", returns = PType.string(), - parameters = listOf(FnParameter("value", PType.string())), + parameters = listOf(Parameter("value", PType.string())), isNullCall = true, isNullable = false, ) @@ -26,12 +26,12 @@ internal object Fn_LOWER__STRING__STRING : Fn { } } -internal object Fn_LOWER__SYMBOL__SYMBOL : Fn { +internal object Fn_LOWER__SYMBOL__SYMBOL : Function { override val signature = FnSignature( name = "lower", returns = PType.symbol(), - parameters = listOf(FnParameter("value", PType.symbol())), + parameters = listOf(Parameter("value", PType.symbol())), isNullCall = true, isNullable = false, ) @@ -43,12 +43,12 @@ internal object Fn_LOWER__SYMBOL__SYMBOL : Fn { } } -internal object Fn_LOWER__CLOB__CLOB : Fn { +internal object Fn_LOWER__CLOB__CLOB : Function { override val signature = FnSignature( name = "lower", returns = PType.clob(Int.MAX_VALUE), - parameters = listOf(FnParameter("value", PType.clob(Int.MAX_VALUE))), + parameters = listOf(Parameter("value", PType.clob(Int.MAX_VALUE))), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLt.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLt.kt index 51ab92be59..2aa698008d 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLt.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLt.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_LT__INT8_INT8__BOOL : Fn { +internal object Fn_LT__INT8_INT8__BOOL : Function { override val signature = FnSignature( name = "lt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.tinyint()), - FnParameter("rhs", PType.tinyint()), + Parameter("lhs", PType.tinyint()), + Parameter("rhs", PType.tinyint()), ), isNullCall = true, isNullable = false, @@ -29,14 +29,14 @@ internal object Fn_LT__INT8_INT8__BOOL : Fn { } } -internal object Fn_LT__INT16_INT16__BOOL : Fn { +internal object Fn_LT__INT16_INT16__BOOL : Function { override val signature = FnSignature( name = "lt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.smallint()), - FnParameter("rhs", PType.smallint()), + Parameter("lhs", PType.smallint()), + Parameter("rhs", PType.smallint()), ), isNullCall = true, isNullable = false, @@ -49,14 +49,14 @@ internal object Fn_LT__INT16_INT16__BOOL : Fn { } } -internal object Fn_LT__INT32_INT32__BOOL : Fn { +internal object Fn_LT__INT32_INT32__BOOL : Function { override val signature = FnSignature( name = "lt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.integer()), - FnParameter("rhs", PType.integer()), + Parameter("lhs", PType.integer()), + Parameter("rhs", PType.integer()), ), isNullCall = true, isNullable = false, @@ -69,14 +69,14 @@ internal object Fn_LT__INT32_INT32__BOOL : Fn { } } -internal object Fn_LT__INT64_INT64__BOOL : Fn { +internal object Fn_LT__INT64_INT64__BOOL : Function { override val signature = FnSignature( name = "lt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.bigint()), - FnParameter("rhs", PType.bigint()), + Parameter("lhs", PType.bigint()), + Parameter("rhs", PType.bigint()), ), isNullCall = true, isNullable = false, @@ -89,14 +89,14 @@ internal object Fn_LT__INT64_INT64__BOOL : Fn { } } -internal object Fn_LT__INT_INT__BOOL : Fn { +internal object Fn_LT__INT_INT__BOOL : Function { override val signature = FnSignature( name = "lt", returns = PType.bool(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.numeric()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("lhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("rhs", PType.numeric()), ), isNullCall = true, isNullable = false, @@ -109,14 +109,14 @@ internal object Fn_LT__INT_INT__BOOL : Fn { } } -internal object Fn_LT__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__BOOL : Fn { +internal object Fn_LT__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__BOOL : Function { override val signature = FnSignature( name = "lt", returns = PType.bool(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.decimal()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("lhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("rhs", PType.decimal()), ), isNullCall = true, isNullable = false, @@ -129,14 +129,14 @@ internal object Fn_LT__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__BOOL : Fn { } } -internal object Fn_LT__FLOAT32_FLOAT32__BOOL : Fn { +internal object Fn_LT__FLOAT32_FLOAT32__BOOL : Function { override val signature = FnSignature( name = "lt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.real()), - FnParameter("rhs", PType.real()), + Parameter("lhs", PType.real()), + Parameter("rhs", PType.real()), ), isNullCall = true, isNullable = false, @@ -149,14 +149,14 @@ internal object Fn_LT__FLOAT32_FLOAT32__BOOL : Fn { } } -internal object Fn_LT__FLOAT64_FLOAT64__BOOL : Fn { +internal object Fn_LT__FLOAT64_FLOAT64__BOOL : Function { override val signature = FnSignature( name = "lt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.doublePrecision()), - FnParameter("rhs", PType.doublePrecision()), + Parameter("lhs", PType.doublePrecision()), + Parameter("rhs", PType.doublePrecision()), ), isNullCall = true, isNullable = false, @@ -169,14 +169,14 @@ internal object Fn_LT__FLOAT64_FLOAT64__BOOL : Fn { } } -internal object Fn_LT__STRING_STRING__BOOL : Fn { +internal object Fn_LT__STRING_STRING__BOOL : Function { override val signature = FnSignature( name = "lt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.string()), - FnParameter("rhs", PType.string()), + Parameter("lhs", PType.string()), + Parameter("rhs", PType.string()), ), isNullCall = true, isNullable = false, @@ -189,14 +189,14 @@ internal object Fn_LT__STRING_STRING__BOOL : Fn { } } -internal object Fn_LT__SYMBOL_SYMBOL__BOOL : Fn { +internal object Fn_LT__SYMBOL_SYMBOL__BOOL : Function { override val signature = FnSignature( name = "lt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.symbol()), - FnParameter("rhs", PType.symbol()), + Parameter("lhs", PType.symbol()), + Parameter("rhs", PType.symbol()), ), isNullCall = true, isNullable = false, @@ -209,14 +209,14 @@ internal object Fn_LT__SYMBOL_SYMBOL__BOOL : Fn { } } -internal object Fn_LT__DATE_DATE__BOOL : Fn { +internal object Fn_LT__DATE_DATE__BOOL : Function { override val signature = FnSignature( name = "lt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.date()), - FnParameter("rhs", PType.date()), + Parameter("lhs", PType.date()), + Parameter("rhs", PType.date()), ), isNullCall = true, isNullable = false, @@ -229,14 +229,14 @@ internal object Fn_LT__DATE_DATE__BOOL : Fn { } } -internal object Fn_LT__TIME_TIME__BOOL : Fn { +internal object Fn_LT__TIME_TIME__BOOL : Function { override val signature = FnSignature( name = "lt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.time(6)), - FnParameter("rhs", PType.time(6)), + Parameter("lhs", PType.time(6)), + Parameter("rhs", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -249,14 +249,14 @@ internal object Fn_LT__TIME_TIME__BOOL : Fn { } } -internal object Fn_LT__TIMESTAMP_TIMESTAMP__BOOL : Fn { +internal object Fn_LT__TIMESTAMP_TIMESTAMP__BOOL : Function { override val signature = FnSignature( name = "lt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.timestamp(6)), - FnParameter("rhs", PType.timestamp(6)), + Parameter("lhs", PType.timestamp(6)), + Parameter("rhs", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -269,14 +269,14 @@ internal object Fn_LT__TIMESTAMP_TIMESTAMP__BOOL : Fn { } } -internal object Fn_LT__BOOL_BOOL__BOOL : Fn { +internal object Fn_LT__BOOL_BOOL__BOOL : Function { override val signature = FnSignature( name = "lt", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.bool()), - FnParameter("rhs", PType.bool()), + Parameter("lhs", PType.bool()), + Parameter("rhs", PType.bool()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLte.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLte.kt index fb3cebfb7e..0b10a3b513 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLte.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnLte.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_LTE__INT8_INT8__BOOL : Fn { +internal object Fn_LTE__INT8_INT8__BOOL : Function { override val signature = FnSignature( name = "lte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.tinyint()), - FnParameter("rhs", PType.tinyint()), + Parameter("lhs", PType.tinyint()), + Parameter("rhs", PType.tinyint()), ), isNullCall = true, isNullable = false, @@ -29,14 +29,14 @@ internal object Fn_LTE__INT8_INT8__BOOL : Fn { } } -internal object Fn_LTE__INT16_INT16__BOOL : Fn { +internal object Fn_LTE__INT16_INT16__BOOL : Function { override val signature = FnSignature( name = "lte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.smallint()), - FnParameter("rhs", PType.smallint()), + Parameter("lhs", PType.smallint()), + Parameter("rhs", PType.smallint()), ), isNullCall = true, isNullable = false, @@ -49,14 +49,14 @@ internal object Fn_LTE__INT16_INT16__BOOL : Fn { } } -internal object Fn_LTE__INT32_INT32__BOOL : Fn { +internal object Fn_LTE__INT32_INT32__BOOL : Function { override val signature = FnSignature( name = "lte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.integer()), - FnParameter("rhs", PType.integer()), + Parameter("lhs", PType.integer()), + Parameter("rhs", PType.integer()), ), isNullCall = true, isNullable = false, @@ -69,14 +69,14 @@ internal object Fn_LTE__INT32_INT32__BOOL : Fn { } } -internal object Fn_LTE__INT64_INT64__BOOL : Fn { +internal object Fn_LTE__INT64_INT64__BOOL : Function { override val signature = FnSignature( name = "lte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.bigint()), - FnParameter("rhs", PType.bigint()), + Parameter("lhs", PType.bigint()), + Parameter("rhs", PType.bigint()), ), isNullCall = true, isNullable = false, @@ -89,14 +89,14 @@ internal object Fn_LTE__INT64_INT64__BOOL : Fn { } } -internal object Fn_LTE__INT_INT__BOOL : Fn { +internal object Fn_LTE__INT_INT__BOOL : Function { override val signature = FnSignature( name = "lte", returns = PType.bool(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.numeric()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("lhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("rhs", PType.numeric()), ), isNullCall = true, isNullable = false, @@ -109,14 +109,14 @@ internal object Fn_LTE__INT_INT__BOOL : Fn { } } -internal object Fn_LTE__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__BOOL : Fn { +internal object Fn_LTE__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__BOOL : Function { override val signature = FnSignature( name = "lte", returns = PType.bool(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.decimal()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("lhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("rhs", PType.decimal()), ), isNullCall = true, isNullable = false, @@ -129,14 +129,14 @@ internal object Fn_LTE__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__BOOL : Fn { } } -internal object Fn_LTE__FLOAT32_FLOAT32__BOOL : Fn { +internal object Fn_LTE__FLOAT32_FLOAT32__BOOL : Function { override val signature = FnSignature( name = "lte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.real()), - FnParameter("rhs", PType.real()), + Parameter("lhs", PType.real()), + Parameter("rhs", PType.real()), ), isNullCall = true, isNullable = false, @@ -149,14 +149,14 @@ internal object Fn_LTE__FLOAT32_FLOAT32__BOOL : Fn { } } -internal object Fn_LTE__FLOAT64_FLOAT64__BOOL : Fn { +internal object Fn_LTE__FLOAT64_FLOAT64__BOOL : Function { override val signature = FnSignature( name = "lte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.doublePrecision()), - FnParameter("rhs", PType.doublePrecision()), + Parameter("lhs", PType.doublePrecision()), + Parameter("rhs", PType.doublePrecision()), ), isNullCall = true, isNullable = false, @@ -169,14 +169,14 @@ internal object Fn_LTE__FLOAT64_FLOAT64__BOOL : Fn { } } -internal object Fn_LTE__STRING_STRING__BOOL : Fn { +internal object Fn_LTE__STRING_STRING__BOOL : Function { override val signature = FnSignature( name = "lte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.string()), - FnParameter("rhs", PType.string()), + Parameter("lhs", PType.string()), + Parameter("rhs", PType.string()), ), isNullCall = true, isNullable = false, @@ -189,14 +189,14 @@ internal object Fn_LTE__STRING_STRING__BOOL : Fn { } } -internal object Fn_LTE__SYMBOL_SYMBOL__BOOL : Fn { +internal object Fn_LTE__SYMBOL_SYMBOL__BOOL : Function { override val signature = FnSignature( name = "lte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.symbol()), - FnParameter("rhs", PType.symbol()), + Parameter("lhs", PType.symbol()), + Parameter("rhs", PType.symbol()), ), isNullCall = true, isNullable = false, @@ -209,14 +209,14 @@ internal object Fn_LTE__SYMBOL_SYMBOL__BOOL : Fn { } } -internal object Fn_LTE__DATE_DATE__BOOL : Fn { +internal object Fn_LTE__DATE_DATE__BOOL : Function { override val signature = FnSignature( name = "lte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.date()), - FnParameter("rhs", PType.date()), + Parameter("lhs", PType.date()), + Parameter("rhs", PType.date()), ), isNullCall = true, isNullable = false, @@ -229,14 +229,14 @@ internal object Fn_LTE__DATE_DATE__BOOL : Fn { } } -internal object Fn_LTE__TIME_TIME__BOOL : Fn { +internal object Fn_LTE__TIME_TIME__BOOL : Function { override val signature = FnSignature( name = "lte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.time(6)), - FnParameter("rhs", PType.time(6)), + Parameter("lhs", PType.time(6)), + Parameter("rhs", PType.time(6)), ), isNullCall = true, isNullable = false, @@ -249,14 +249,14 @@ internal object Fn_LTE__TIME_TIME__BOOL : Fn { } } -internal object Fn_LTE__TIMESTAMP_TIMESTAMP__BOOL : Fn { +internal object Fn_LTE__TIMESTAMP_TIMESTAMP__BOOL : Function { override val signature = FnSignature( name = "lte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.timestamp(6)), - FnParameter("rhs", PType.timestamp(6)), + Parameter("lhs", PType.timestamp(6)), + Parameter("rhs", PType.timestamp(6)), ), isNullCall = true, isNullable = false, @@ -269,14 +269,14 @@ internal object Fn_LTE__TIMESTAMP_TIMESTAMP__BOOL : Fn { } } -internal object Fn_LTE__BOOL_BOOL__BOOL : Fn { +internal object Fn_LTE__BOOL_BOOL__BOOL : Function { override val signature = FnSignature( name = "lte", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.bool()), - FnParameter("rhs", PType.bool()), + Parameter("lhs", PType.bool()), + Parameter("rhs", PType.bool()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnMinus.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnMinus.kt index 4942058291..d43efb2428 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnMinus.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnMinus.kt @@ -4,20 +4,20 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType // TODO: Handle Overflow -internal object Fn_MINUS__INT8_INT8__INT8 : Fn { +internal object Fn_MINUS__INT8_INT8__INT8 : Function { override val signature = FnSignature( name = "minus", returns = PType.tinyint(), parameters = listOf( - FnParameter("lhs", PType.tinyint()), - FnParameter("rhs", PType.tinyint()), + Parameter("lhs", PType.tinyint()), + Parameter("rhs", PType.tinyint()), ), isNullCall = true, isNullable = false, @@ -30,14 +30,14 @@ internal object Fn_MINUS__INT8_INT8__INT8 : Fn { } } -internal object Fn_MINUS__INT16_INT16__INT16 : Fn { +internal object Fn_MINUS__INT16_INT16__INT16 : Function { override val signature = FnSignature( name = "minus", returns = PType.smallint(), parameters = listOf( - FnParameter("lhs", PType.smallint()), - FnParameter("rhs", PType.smallint()), + Parameter("lhs", PType.smallint()), + Parameter("rhs", PType.smallint()), ), isNullCall = true, isNullable = false, @@ -50,14 +50,14 @@ internal object Fn_MINUS__INT16_INT16__INT16 : Fn { } } -internal object Fn_MINUS__INT32_INT32__INT32 : Fn { +internal object Fn_MINUS__INT32_INT32__INT32 : Function { override val signature = FnSignature( name = "minus", returns = PType.integer(), parameters = listOf( - FnParameter("lhs", PType.integer()), - FnParameter("rhs", PType.integer()), + Parameter("lhs", PType.integer()), + Parameter("rhs", PType.integer()), ), isNullCall = true, isNullable = false, @@ -70,14 +70,14 @@ internal object Fn_MINUS__INT32_INT32__INT32 : Fn { } } -internal object Fn_MINUS__INT64_INT64__INT64 : Fn { +internal object Fn_MINUS__INT64_INT64__INT64 : Function { override val signature = FnSignature( name = "minus", returns = PType.bigint(), parameters = listOf( - FnParameter("lhs", PType.bigint()), - FnParameter("rhs", PType.bigint()), + Parameter("lhs", PType.bigint()), + Parameter("rhs", PType.bigint()), ), isNullCall = true, isNullable = false, @@ -90,14 +90,14 @@ internal object Fn_MINUS__INT64_INT64__INT64 : Fn { } } -internal object Fn_MINUS__INT_INT__INT : Fn { +internal object Fn_MINUS__INT_INT__INT : Function { override val signature = FnSignature( name = "minus", returns = PType.numeric(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.numeric()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("lhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("rhs", PType.numeric()), ), isNullCall = true, isNullable = false, @@ -110,14 +110,15 @@ internal object Fn_MINUS__INT_INT__INT : Fn { } } -internal object Fn_MINUS__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Fn { +internal object Fn_MINUS__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : + Function { override val signature = FnSignature( name = "minus", returns = PType.decimal(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.decimal()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("lhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("rhs", PType.decimal()), ), isNullCall = true, isNullable = false, @@ -130,14 +131,14 @@ internal object Fn_MINUS__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__DECIMAL_ARBITRARY } } -internal object Fn_MINUS__FLOAT32_FLOAT32__FLOAT32 : Fn { +internal object Fn_MINUS__FLOAT32_FLOAT32__FLOAT32 : Function { override val signature = FnSignature( name = "minus", returns = PType.real(), parameters = listOf( - FnParameter("lhs", PType.real()), - FnParameter("rhs", PType.real()), + Parameter("lhs", PType.real()), + Parameter("rhs", PType.real()), ), isNullCall = true, isNullable = false, @@ -150,14 +151,14 @@ internal object Fn_MINUS__FLOAT32_FLOAT32__FLOAT32 : Fn { } } -internal object Fn_MINUS__FLOAT64_FLOAT64__FLOAT64 : Fn { +internal object Fn_MINUS__FLOAT64_FLOAT64__FLOAT64 : Function { override val signature = FnSignature( name = "minus", returns = PType.doublePrecision(), parameters = listOf( - FnParameter("lhs", PType.doublePrecision()), - FnParameter("rhs", PType.doublePrecision()), + Parameter("lhs", PType.doublePrecision()), + Parameter("rhs", PType.doublePrecision()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnModulo.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnModulo.kt index 056e6862bc..d5612d5222 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnModulo.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnModulo.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_MODULO__INT8_INT8__INT8 : Fn { +internal object Fn_MODULO__INT8_INT8__INT8 : Function { override val signature = FnSignature( name = "modulo", returns = PType.tinyint(), parameters = listOf( - FnParameter("lhs", PType.tinyint()), - FnParameter("rhs", PType.tinyint()), + Parameter("lhs", PType.tinyint()), + Parameter("rhs", PType.tinyint()), ), isNullCall = true, isNullable = false, @@ -29,14 +29,14 @@ internal object Fn_MODULO__INT8_INT8__INT8 : Fn { } } -internal object Fn_MODULO__INT16_INT16__INT16 : Fn { +internal object Fn_MODULO__INT16_INT16__INT16 : Function { override val signature = FnSignature( name = "modulo", returns = PType.smallint(), parameters = listOf( - FnParameter("lhs", PType.smallint()), - FnParameter("rhs", PType.smallint()), + Parameter("lhs", PType.smallint()), + Parameter("rhs", PType.smallint()), ), isNullCall = true, isNullable = false, @@ -49,14 +49,14 @@ internal object Fn_MODULO__INT16_INT16__INT16 : Fn { } } -internal object Fn_MODULO__INT32_INT32__INT32 : Fn { +internal object Fn_MODULO__INT32_INT32__INT32 : Function { override val signature = FnSignature( name = "modulo", returns = PType.integer(), parameters = listOf( - FnParameter("lhs", PType.integer()), - FnParameter("rhs", PType.integer()), + Parameter("lhs", PType.integer()), + Parameter("rhs", PType.integer()), ), isNullCall = true, isNullable = false, @@ -69,14 +69,14 @@ internal object Fn_MODULO__INT32_INT32__INT32 : Fn { } } -internal object Fn_MODULO__INT64_INT64__INT64 : Fn { +internal object Fn_MODULO__INT64_INT64__INT64 : Function { override val signature = FnSignature( name = "modulo", returns = PType.bigint(), parameters = listOf( - FnParameter("lhs", PType.bigint()), - FnParameter("rhs", PType.bigint()), + Parameter("lhs", PType.bigint()), + Parameter("rhs", PType.bigint()), ), isNullCall = true, isNullable = false, @@ -89,14 +89,14 @@ internal object Fn_MODULO__INT64_INT64__INT64 : Fn { } } -internal object Fn_MODULO__INT_INT__INT : Fn { +internal object Fn_MODULO__INT_INT__INT : Function { override val signature = FnSignature( name = "modulo", returns = PType.numeric(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.numeric()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("lhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("rhs", PType.numeric()), ), isNullCall = true, isNullable = false, @@ -109,14 +109,15 @@ internal object Fn_MODULO__INT_INT__INT : Fn { } } -internal object Fn_MODULO__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Fn { +internal object Fn_MODULO__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : + Function { override val signature = FnSignature( name = "modulo", returns = PType.decimal(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.decimal()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("lhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("rhs", PType.decimal()), ), isNullCall = true, isNullable = false, @@ -129,14 +130,14 @@ internal object Fn_MODULO__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__DECIMAL_ARBITRAR } } -internal object Fn_MODULO__FLOAT32_FLOAT32__FLOAT32 : Fn { +internal object Fn_MODULO__FLOAT32_FLOAT32__FLOAT32 : Function { override val signature = FnSignature( name = "modulo", returns = PType.real(), parameters = listOf( - FnParameter("lhs", PType.real()), - FnParameter("rhs", PType.real()), + Parameter("lhs", PType.real()), + Parameter("rhs", PType.real()), ), isNullCall = true, isNullable = false, @@ -149,14 +150,14 @@ internal object Fn_MODULO__FLOAT32_FLOAT32__FLOAT32 : Fn { } } -internal object Fn_MODULO__FLOAT64_FLOAT64__FLOAT64 : Fn { +internal object Fn_MODULO__FLOAT64_FLOAT64__FLOAT64 : Function { override val signature = FnSignature( name = "modulo", returns = PType.doublePrecision(), parameters = listOf( - FnParameter("lhs", PType.doublePrecision()), - FnParameter("rhs", PType.doublePrecision()), + Parameter("lhs", PType.doublePrecision()), + Parameter("rhs", PType.doublePrecision()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnNeg.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnNeg.kt index f65e6b010a..08e46a9700 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnNeg.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnNeg.kt @@ -4,18 +4,18 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType // TODO: Handle Overflow -internal object Fn_NEG__INT8__INT8 : Fn { +internal object Fn_NEG__INT8__INT8 : Function { override val signature = FnSignature( name = "neg", returns = PType.tinyint(), - parameters = listOf(FnParameter("value", PType.tinyint())), + parameters = listOf(Parameter("value", PType.tinyint())), isNullCall = true, isNullable = false, ) @@ -27,12 +27,12 @@ internal object Fn_NEG__INT8__INT8 : Fn { } } -internal object Fn_NEG__INT16__INT16 : Fn { +internal object Fn_NEG__INT16__INT16 : Function { override val signature = FnSignature( name = "neg", returns = PType.smallint(), - parameters = listOf(FnParameter("value", PType.smallint())), + parameters = listOf(Parameter("value", PType.smallint())), isNullCall = true, isNullable = false, ) @@ -43,12 +43,12 @@ internal object Fn_NEG__INT16__INT16 : Fn { } } -internal object Fn_NEG__INT32__INT32 : Fn { +internal object Fn_NEG__INT32__INT32 : Function { override val signature = FnSignature( name = "neg", returns = PType.integer(), - parameters = listOf(FnParameter("value", PType.integer())), + parameters = listOf(Parameter("value", PType.integer())), isNullCall = true, isNullable = false, ) @@ -59,12 +59,12 @@ internal object Fn_NEG__INT32__INT32 : Fn { } } -internal object Fn_NEG__INT64__INT64 : Fn { +internal object Fn_NEG__INT64__INT64 : Function { override val signature = FnSignature( name = "neg", returns = PType.bigint(), - parameters = listOf(FnParameter("value", PType.bigint())), + parameters = listOf(Parameter("value", PType.bigint())), isNullCall = true, isNullable = false, ) @@ -75,12 +75,12 @@ internal object Fn_NEG__INT64__INT64 : Fn { } } -internal object Fn_NEG__INT__INT : Fn { +internal object Fn_NEG__INT__INT : Function { override val signature = FnSignature( name = "neg", returns = PType.numeric(), - parameters = listOf(FnParameter("value", PType.numeric())), + parameters = listOf(Parameter("value", PType.numeric())), isNullCall = true, isNullable = false, ) @@ -91,12 +91,12 @@ internal object Fn_NEG__INT__INT : Fn { } } -internal object Fn_NEG__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Fn { +internal object Fn_NEG__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Function { override val signature = FnSignature( name = "neg", returns = PType.decimal(), - parameters = listOf(FnParameter("value", PType.decimal())), + parameters = listOf(Parameter("value", PType.decimal())), isNullCall = true, isNullable = false, ) @@ -107,12 +107,12 @@ internal object Fn_NEG__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Fn { } } -internal object Fn_NEG__FLOAT32__FLOAT32 : Fn { +internal object Fn_NEG__FLOAT32__FLOAT32 : Function { override val signature = FnSignature( name = "neg", returns = PType.real(), - parameters = listOf(FnParameter("value", PType.real())), + parameters = listOf(Parameter("value", PType.real())), isNullCall = true, isNullable = false, ) @@ -123,12 +123,12 @@ internal object Fn_NEG__FLOAT32__FLOAT32 : Fn { } } -internal object Fn_NEG__FLOAT64__FLOAT64 : Fn { +internal object Fn_NEG__FLOAT64__FLOAT64 : Function { override val signature = FnSignature( name = "neg", returns = PType.doublePrecision(), - parameters = listOf(FnParameter("value", PType.doublePrecision())), + parameters = listOf(Parameter("value", PType.doublePrecision())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnNot.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnNot.kt index 3655a0245f..034750369d 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnNot.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnNot.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_NOT__BOOL__BOOL : Fn { +internal object Fn_NOT__BOOL__BOOL : Function { override val signature = FnSignature( name = "not", returns = PType.bool(), - parameters = listOf(FnParameter("value", PType.bool())), + parameters = listOf(Parameter("value", PType.bool())), isNullable = false, isNullCall = true, isMissable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnOctetLength.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnOctetLength.kt index 4f35a56585..c62ff0dff7 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnOctetLength.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnOctetLength.kt @@ -1,18 +1,18 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_OCTET_LENGTH__STRING__INT32 : Fn { +internal object Fn_OCTET_LENGTH__STRING__INT32 : Function { override val signature = FnSignature( name = "octet_length", returns = PType.integer(), parameters = listOf( - FnParameter("value", PType.string()), + Parameter("value", PType.string()), ), isNullCall = true, isNullable = false, @@ -25,13 +25,13 @@ internal object Fn_OCTET_LENGTH__STRING__INT32 : Fn { } } -internal object Fn_OCTET_LENGTH__SYMBOL__INT32 : Fn { +internal object Fn_OCTET_LENGTH__SYMBOL__INT32 : Function { override val signature = FnSignature( name = "octet_length", returns = PType.integer(), parameters = listOf( - FnParameter("value", PType.symbol()), + Parameter("value", PType.symbol()), ), isNullCall = true, isNullable = false, @@ -44,13 +44,13 @@ internal object Fn_OCTET_LENGTH__SYMBOL__INT32 : Fn { } } -internal object Fn_OCTET_LENGTH__CLOB__INT32 : Fn { +internal object Fn_OCTET_LENGTH__CLOB__INT32 : Function { override val signature = FnSignature( name = "octet_length", returns = PType.integer(), parameters = listOf( - FnParameter("value", PType.clob(Int.MAX_VALUE)), + Parameter("value", PType.clob(Int.MAX_VALUE)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnOr.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnOr.kt index cd1be72ea5..495ec22657 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnOr.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnOr.kt @@ -4,19 +4,19 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_OR__BOOL_BOOL__BOOL : Fn { +internal object Fn_OR__BOOL_BOOL__BOOL : Function { override val signature = FnSignature( name = "or", returns = PType.bool(), parameters = listOf( - FnParameter("lhs", PType.bool()), - FnParameter("rhs", PType.bool()), + Parameter("lhs", PType.bool()), + Parameter("rhs", PType.bool()), ), isNullable = true, isNullCall = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnPlus.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnPlus.kt index 4792d23f45..07b549b653 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnPlus.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnPlus.kt @@ -4,20 +4,20 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType // TODO: Handle Overflow -internal object Fn_PLUS__INT8_INT8__INT8 : Fn { +internal object Fn_PLUS__INT8_INT8__INT8 : Function { override val signature = FnSignature( name = "plus", returns = PType.tinyint(), parameters = listOf( - FnParameter("lhs", PType.tinyint()), - FnParameter("rhs", PType.tinyint()), + Parameter("lhs", PType.tinyint()), + Parameter("rhs", PType.tinyint()), ), isNullCall = true, isNullable = false, @@ -30,14 +30,14 @@ internal object Fn_PLUS__INT8_INT8__INT8 : Fn { } } -internal object Fn_PLUS__INT16_INT16__INT16 : Fn { +internal object Fn_PLUS__INT16_INT16__INT16 : Function { override val signature = FnSignature( name = "plus", returns = PType.smallint(), parameters = listOf( - FnParameter("lhs", PType.smallint()), - FnParameter("rhs", PType.smallint()), + Parameter("lhs", PType.smallint()), + Parameter("rhs", PType.smallint()), ), isNullCall = true, isNullable = false, @@ -50,14 +50,14 @@ internal object Fn_PLUS__INT16_INT16__INT16 : Fn { } } -internal object Fn_PLUS__INT32_INT32__INT32 : Fn { +internal object Fn_PLUS__INT32_INT32__INT32 : Function { override val signature = FnSignature( name = "plus", returns = PType.integer(), parameters = listOf( - FnParameter("lhs", PType.integer()), - FnParameter("rhs", PType.integer()), + Parameter("lhs", PType.integer()), + Parameter("rhs", PType.integer()), ), isNullCall = true, isNullable = false, @@ -70,14 +70,14 @@ internal object Fn_PLUS__INT32_INT32__INT32 : Fn { } } -internal object Fn_PLUS__INT64_INT64__INT64 : Fn { +internal object Fn_PLUS__INT64_INT64__INT64 : Function { override val signature = FnSignature( name = "plus", returns = PType.bigint(), parameters = listOf( - FnParameter("lhs", PType.bigint()), - FnParameter("rhs", PType.bigint()), + Parameter("lhs", PType.bigint()), + Parameter("rhs", PType.bigint()), ), isNullCall = true, isNullable = false, @@ -90,14 +90,14 @@ internal object Fn_PLUS__INT64_INT64__INT64 : Fn { } } -internal object Fn_PLUS__INT_INT__INT : Fn { +internal object Fn_PLUS__INT_INT__INT : Function { override val signature = FnSignature( name = "plus", returns = PType.numeric(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.numeric()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("lhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("rhs", PType.numeric()), ), isNullCall = true, isNullable = false, @@ -110,14 +110,15 @@ internal object Fn_PLUS__INT_INT__INT : Fn { } } -internal object Fn_PLUS__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Fn { +internal object Fn_PLUS__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : + Function { override val signature = FnSignature( name = "plus", returns = PType.decimal(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.decimal()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("lhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("rhs", PType.decimal()), ), isNullCall = true, isNullable = false, @@ -130,14 +131,14 @@ internal object Fn_PLUS__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__DECIMAL_ARBITRARY } } -internal object Fn_PLUS__FLOAT32_FLOAT32__FLOAT32 : Fn { +internal object Fn_PLUS__FLOAT32_FLOAT32__FLOAT32 : Function { override val signature = FnSignature( name = "plus", returns = PType.real(), parameters = listOf( - FnParameter("lhs", PType.real()), - FnParameter("rhs", PType.real()), + Parameter("lhs", PType.real()), + Parameter("rhs", PType.real()), ), isNullCall = true, isNullable = false, @@ -150,14 +151,14 @@ internal object Fn_PLUS__FLOAT32_FLOAT32__FLOAT32 : Fn { } } -internal object Fn_PLUS__FLOAT64_FLOAT64__FLOAT64 : Fn { +internal object Fn_PLUS__FLOAT64_FLOAT64__FLOAT64 : Function { override val signature = FnSignature( name = "plus", returns = PType.doublePrecision(), parameters = listOf( - FnParameter("lhs", PType.doublePrecision()), - FnParameter("rhs", PType.doublePrecision()), + Parameter("lhs", PType.doublePrecision()), + Parameter("rhs", PType.doublePrecision()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnPos.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnPos.kt index aeae4d6eba..9193766ee9 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnPos.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnPos.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_POS__INT8__INT8 : Fn { +internal object Fn_POS__INT8__INT8 : Function { override val signature = FnSignature( name = "pos", returns = PType.tinyint(), - parameters = listOf(FnParameter("value", PType.tinyint())), + parameters = listOf(Parameter("value", PType.tinyint())), isNullCall = true, isNullable = false, ) @@ -24,12 +24,12 @@ internal object Fn_POS__INT8__INT8 : Fn { } } -internal object Fn_POS__INT16__INT16 : Fn { +internal object Fn_POS__INT16__INT16 : Function { override val signature = FnSignature( name = "pos", returns = PType.smallint(), - parameters = listOf(FnParameter("value", PType.smallint())), + parameters = listOf(Parameter("value", PType.smallint())), isNullCall = true, isNullable = false, ) @@ -39,12 +39,12 @@ internal object Fn_POS__INT16__INT16 : Fn { } } -internal object Fn_POS__INT32__INT32 : Fn { +internal object Fn_POS__INT32__INT32 : Function { override val signature = FnSignature( name = "pos", returns = PType.integer(), - parameters = listOf(FnParameter("value", PType.integer())), + parameters = listOf(Parameter("value", PType.integer())), isNullCall = true, isNullable = false, ) @@ -54,12 +54,12 @@ internal object Fn_POS__INT32__INT32 : Fn { } } -internal object Fn_POS__INT64__INT64 : Fn { +internal object Fn_POS__INT64__INT64 : Function { override val signature = FnSignature( name = "pos", returns = PType.bigint(), - parameters = listOf(FnParameter("value", PType.bigint())), + parameters = listOf(Parameter("value", PType.bigint())), isNullCall = true, isNullable = false, ) @@ -69,12 +69,12 @@ internal object Fn_POS__INT64__INT64 : Fn { } } -internal object Fn_POS__INT__INT : Fn { +internal object Fn_POS__INT__INT : Function { override val signature = FnSignature( name = "pos", returns = PType.numeric(), - parameters = listOf(FnParameter("value", PType.numeric())), + parameters = listOf(Parameter("value", PType.numeric())), isNullCall = true, isNullable = false, ) @@ -84,12 +84,12 @@ internal object Fn_POS__INT__INT : Fn { } } -internal object Fn_POS__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Fn { +internal object Fn_POS__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Function { override val signature = FnSignature( name = "pos", returns = PType.decimal(), - parameters = listOf(FnParameter("value", PType.decimal())), + parameters = listOf(Parameter("value", PType.decimal())), isNullCall = true, isNullable = false, ) @@ -99,12 +99,12 @@ internal object Fn_POS__DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Fn { } } -internal object Fn_POS__FLOAT32__FLOAT32 : Fn { +internal object Fn_POS__FLOAT32__FLOAT32 : Function { override val signature = FnSignature( name = "pos", returns = PType.real(), - parameters = listOf(FnParameter("value", PType.real())), + parameters = listOf(Parameter("value", PType.real())), isNullCall = true, isNullable = false, ) @@ -114,12 +114,12 @@ internal object Fn_POS__FLOAT32__FLOAT32 : Fn { } } -internal object Fn_POS__FLOAT64__FLOAT64 : Fn { +internal object Fn_POS__FLOAT64__FLOAT64 : Function { override val signature = FnSignature( name = "pos", returns = PType.doublePrecision(), - parameters = listOf(FnParameter("value", PType.doublePrecision())), + parameters = listOf(Parameter("value", PType.doublePrecision())), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnPosition.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnPosition.kt index 8c8db96596..3eb110dc4f 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnPosition.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnPosition.kt @@ -4,20 +4,20 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.utils.StringUtils.codepointPosition import org.partiql.types.PType -internal object Fn_POSITION__STRING_STRING__INT64 : Fn { +internal object Fn_POSITION__STRING_STRING__INT64 : Function { override val signature = FnSignature( name = "position", returns = PType.bigint(), parameters = listOf( - FnParameter("probe", PType.string()), - FnParameter("value", PType.string()), + Parameter("probe", PType.string()), + Parameter("value", PType.string()), ), isNullCall = true, isNullable = false, @@ -31,14 +31,14 @@ internal object Fn_POSITION__STRING_STRING__INT64 : Fn { } } -internal object Fn_POSITION__SYMBOL_SYMBOL__INT64 : Fn { +internal object Fn_POSITION__SYMBOL_SYMBOL__INT64 : Function { override val signature = FnSignature( name = "position", returns = PType.bigint(), parameters = listOf( - FnParameter("probe", PType.symbol()), - FnParameter("value", PType.symbol()), + Parameter("probe", PType.symbol()), + Parameter("value", PType.symbol()), ), isNullCall = true, isNullable = false, @@ -52,14 +52,14 @@ internal object Fn_POSITION__SYMBOL_SYMBOL__INT64 : Fn { } } -internal object Fn_POSITION__CLOB_CLOB__INT64 : Fn { +internal object Fn_POSITION__CLOB_CLOB__INT64 : Function { override val signature = FnSignature( name = "position", returns = PType.bigint(), parameters = listOf( - FnParameter("probe", PType.clob(Int.MAX_VALUE)), - FnParameter("value", PType.clob(Int.MAX_VALUE)), + Parameter("probe", PType.clob(Int.MAX_VALUE)), + Parameter("value", PType.clob(Int.MAX_VALUE)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnSize.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnSize.kt index ad0bba469d..5e54f4c71e 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnSize.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnSize.kt @@ -1,18 +1,18 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_SIZE__BAG__INT32 : Fn { +internal object Fn_SIZE__BAG__INT32 : Function { override val signature = FnSignature( name = "size", returns = PType.integer(), parameters = listOf( - FnParameter("container", PType.bag()), + Parameter("container", PType.bag()), ), isNullCall = true, isNullable = false, @@ -24,13 +24,13 @@ internal object Fn_SIZE__BAG__INT32 : Fn { } } -internal object Fn_SIZE__LIST__INT32 : Fn { +internal object Fn_SIZE__LIST__INT32 : Function { override val signature = FnSignature( name = "size", returns = PType.integer(), parameters = listOf( - FnParameter("container", PType.array()), + Parameter("container", PType.array()), ), isNullCall = true, isNullable = false, @@ -42,13 +42,13 @@ internal object Fn_SIZE__LIST__INT32 : Fn { } } -internal object Fn_SIZE__SEXP__INT32 : Fn { +internal object Fn_SIZE__SEXP__INT32 : Function { override val signature = FnSignature( name = "size", returns = PType.integer(), parameters = listOf( - FnParameter("container", PType.sexp()), + Parameter("container", PType.sexp()), ), isNullCall = true, isNullable = false, @@ -60,13 +60,13 @@ internal object Fn_SIZE__SEXP__INT32 : Fn { } } -internal object Fn_SIZE__STRUCT__INT32 : Fn { +internal object Fn_SIZE__STRUCT__INT32 : Function { override val signature = FnSignature( name = "size", returns = PType.integer(), parameters = listOf( - FnParameter("container", PType.struct()), + Parameter("container", PType.struct()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnSubstring.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnSubstring.kt index af4b328179..7e857eb944 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnSubstring.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnSubstring.kt @@ -5,9 +5,9 @@ package org.partiql.spi.fn.builtins import org.partiql.errors.TypeCheckException import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.utils.StringUtils.codepointSubstring import org.partiql.types.PType @@ -80,14 +80,14 @@ import org.partiql.types.PType * L1 = E1 - S1 * return java's substring(C, S1, E1) */ -internal object Fn_SUBSTRING__STRING_INT32__STRING : Fn { +internal object Fn_SUBSTRING__STRING_INT32__STRING : Function { override val signature = FnSignature( name = "substring", returns = PType.string(), parameters = listOf( - FnParameter("value", PType.string()), - FnParameter("start", PType.integer()), + Parameter("value", PType.string()), + Parameter("start", PType.integer()), ), isNullCall = true, isNullable = false, @@ -101,15 +101,15 @@ internal object Fn_SUBSTRING__STRING_INT32__STRING : Fn { } } -internal object Fn_SUBSTRING__STRING_INT32_INT32__STRING : Fn { +internal object Fn_SUBSTRING__STRING_INT32_INT32__STRING : Function { override val signature = FnSignature( name = "substring", returns = PType.string(), parameters = listOf( - FnParameter("value", PType.string()), - FnParameter("start", PType.integer()), - FnParameter("end", PType.integer()), + Parameter("value", PType.string()), + Parameter("start", PType.integer()), + Parameter("end", PType.integer()), ), isNullCall = true, isNullable = false, @@ -125,14 +125,14 @@ internal object Fn_SUBSTRING__STRING_INT32_INT32__STRING : Fn { } } -internal object Fn_SUBSTRING__SYMBOL_INT64__SYMBOL : Fn { +internal object Fn_SUBSTRING__SYMBOL_INT64__SYMBOL : Function { override val signature = FnSignature( name = "substring", returns = PType.symbol(), parameters = listOf( - FnParameter("value", PType.symbol()), - FnParameter("start", PType.integer()), + Parameter("value", PType.symbol()), + Parameter("start", PType.integer()), ), isNullCall = true, isNullable = false, @@ -146,15 +146,15 @@ internal object Fn_SUBSTRING__SYMBOL_INT64__SYMBOL : Fn { } } -internal object Fn_SUBSTRING__SYMBOL_INT32_INT32__SYMBOL : Fn { +internal object Fn_SUBSTRING__SYMBOL_INT32_INT32__SYMBOL : Function { override val signature = FnSignature( name = "substring", returns = PType.symbol(), parameters = listOf( - FnParameter("value", PType.symbol()), - FnParameter("start", PType.integer()), - FnParameter("end", PType.integer()), + Parameter("value", PType.symbol()), + Parameter("start", PType.integer()), + Parameter("end", PType.integer()), ), isNullCall = true, isNullable = false, @@ -170,14 +170,14 @@ internal object Fn_SUBSTRING__SYMBOL_INT32_INT32__SYMBOL : Fn { } } -internal object Fn_SUBSTRING__CLOB_INT64__CLOB : Fn { +internal object Fn_SUBSTRING__CLOB_INT64__CLOB : Function { override val signature = FnSignature( name = "substring", returns = PType.clob(Int.MAX_VALUE), parameters = listOf( - FnParameter("value", PType.clob(Int.MAX_VALUE)), - FnParameter("start", PType.integer()), + Parameter("value", PType.clob(Int.MAX_VALUE)), + Parameter("start", PType.integer()), ), isNullCall = true, isNullable = false, @@ -191,15 +191,15 @@ internal object Fn_SUBSTRING__CLOB_INT64__CLOB : Fn { } } -internal object Fn_SUBSTRING__CLOB_INT64_INT64__CLOB : Fn { +internal object Fn_SUBSTRING__CLOB_INT64_INT64__CLOB : Function { override val signature = FnSignature( name = "substring", returns = PType.clob(Int.MAX_VALUE), parameters = listOf( - FnParameter("value", PType.clob(Int.MAX_VALUE)), - FnParameter("start", PType.integer()), - FnParameter("end", PType.integer()), + Parameter("value", PType.clob(Int.MAX_VALUE)), + Parameter("start", PType.integer()), + Parameter("end", PType.integer()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTimes.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTimes.kt index ef69b763a7..b2eb71d12d 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTimes.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTimes.kt @@ -4,20 +4,20 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType // TODO: Handle Overflow -internal object Fn_TIMES__INT8_INT8__INT8 : Fn { +internal object Fn_TIMES__INT8_INT8__INT8 : Function { override val signature = FnSignature( name = "times", returns = PType.tinyint(), parameters = listOf( - FnParameter("lhs", PType.tinyint()), - FnParameter("rhs", PType.tinyint()), + Parameter("lhs", PType.tinyint()), + Parameter("rhs", PType.tinyint()), ), isNullCall = true, isNullable = false, @@ -30,14 +30,14 @@ internal object Fn_TIMES__INT8_INT8__INT8 : Fn { } } -internal object Fn_TIMES__INT16_INT16__INT16 : Fn { +internal object Fn_TIMES__INT16_INT16__INT16 : Function { override val signature = FnSignature( name = "times", returns = PType.smallint(), parameters = listOf( - FnParameter("lhs", PType.smallint()), - FnParameter("rhs", PType.smallint()), + Parameter("lhs", PType.smallint()), + Parameter("rhs", PType.smallint()), ), isNullCall = true, isNullable = false, @@ -50,14 +50,14 @@ internal object Fn_TIMES__INT16_INT16__INT16 : Fn { } } -internal object Fn_TIMES__INT32_INT32__INT32 : Fn { +internal object Fn_TIMES__INT32_INT32__INT32 : Function { override val signature = FnSignature( name = "times", returns = PType.integer(), parameters = listOf( - FnParameter("lhs", PType.integer()), - FnParameter("rhs", PType.integer()), + Parameter("lhs", PType.integer()), + Parameter("rhs", PType.integer()), ), isNullCall = true, isNullable = false, @@ -70,14 +70,14 @@ internal object Fn_TIMES__INT32_INT32__INT32 : Fn { } } -internal object Fn_TIMES__INT64_INT64__INT64 : Fn { +internal object Fn_TIMES__INT64_INT64__INT64 : Function { override val signature = FnSignature( name = "times", returns = PType.bigint(), parameters = listOf( - FnParameter("lhs", PType.bigint()), - FnParameter("rhs", PType.bigint()), + Parameter("lhs", PType.bigint()), + Parameter("rhs", PType.bigint()), ), isNullCall = true, isNullable = false, @@ -90,14 +90,14 @@ internal object Fn_TIMES__INT64_INT64__INT64 : Fn { } } -internal object Fn_TIMES__INT_INT__INT : Fn { +internal object Fn_TIMES__INT_INT__INT : Function { override val signature = FnSignature( name = "times", returns = PType.numeric(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.numeric()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("lhs", PType.numeric()), + @Suppress("DEPRECATION") Parameter("rhs", PType.numeric()), ), isNullCall = true, isNullable = false, @@ -110,14 +110,15 @@ internal object Fn_TIMES__INT_INT__INT : Fn { } } -internal object Fn_TIMES__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : Fn { +internal object Fn_TIMES__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__DECIMAL_ARBITRARY : + Function { override val signature = FnSignature( name = "times", returns = PType.decimal(), parameters = listOf( - @Suppress("DEPRECATION") FnParameter("lhs", PType.decimal()), - @Suppress("DEPRECATION") FnParameter("rhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("lhs", PType.decimal()), + @Suppress("DEPRECATION") Parameter("rhs", PType.decimal()), ), isNullCall = true, isNullable = false, @@ -130,14 +131,14 @@ internal object Fn_TIMES__DECIMAL_ARBITRARY_DECIMAL_ARBITRARY__DECIMAL_ARBITRARY } } -internal object Fn_TIMES__FLOAT32_FLOAT32__FLOAT32 : Fn { +internal object Fn_TIMES__FLOAT32_FLOAT32__FLOAT32 : Function { override val signature = FnSignature( name = "times", returns = PType.real(), parameters = listOf( - FnParameter("lhs", PType.real()), - FnParameter("rhs", PType.real()), + Parameter("lhs", PType.real()), + Parameter("rhs", PType.real()), ), isNullCall = true, isNullable = false, @@ -150,14 +151,14 @@ internal object Fn_TIMES__FLOAT32_FLOAT32__FLOAT32 : Fn { } } -internal object Fn_TIMES__FLOAT64_FLOAT64__FLOAT64 : Fn { +internal object Fn_TIMES__FLOAT64_FLOAT64__FLOAT64 : Function { override val signature = FnSignature( name = "times", returns = PType.doublePrecision(), parameters = listOf( - FnParameter("lhs", PType.doublePrecision()), - FnParameter("rhs", PType.doublePrecision()), + Parameter("lhs", PType.doublePrecision()), + Parameter("rhs", PType.doublePrecision()), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrim.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrim.kt index a987ae0800..74fd9484e3 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrim.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrim.kt @@ -4,9 +4,9 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.utils.StringUtils.codepointTrim import org.partiql.types.PType @@ -39,12 +39,12 @@ import org.partiql.types.PType * * ` ::= ` * * ` ::= ` */ -internal object Fn_TRIM__STRING__STRING : Fn { +internal object Fn_TRIM__STRING__STRING : Function { override val signature = FnSignature( name = "trim", returns = PType.string(), - parameters = listOf(FnParameter("value", PType.string())), + parameters = listOf(Parameter("value", PType.string())), isNullCall = true, isNullable = false, ) @@ -56,12 +56,12 @@ internal object Fn_TRIM__STRING__STRING : Fn { } } -internal object Fn_TRIM__SYMBOL__SYMBOL : Fn { +internal object Fn_TRIM__SYMBOL__SYMBOL : Function { override val signature = FnSignature( name = "trim", returns = PType.symbol(), - parameters = listOf(FnParameter("value", PType.symbol())), + parameters = listOf(Parameter("value", PType.symbol())), isNullCall = true, isNullable = false, ) @@ -73,12 +73,12 @@ internal object Fn_TRIM__SYMBOL__SYMBOL : Fn { } } -internal object Fn_TRIM__CLOB__CLOB : Fn { +internal object Fn_TRIM__CLOB__CLOB : Function { override val signature = FnSignature( name = "trim", returns = PType.clob(Int.MAX_VALUE), - parameters = listOf(FnParameter("value", PType.clob(Int.MAX_VALUE))), + parameters = listOf(Parameter("value", PType.clob(Int.MAX_VALUE))), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimChars.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimChars.kt index a473213209..24a5cab7c9 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimChars.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimChars.kt @@ -4,20 +4,20 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.utils.StringUtils.codepointTrim import org.partiql.types.PType -internal object Fn_TRIM_CHARS__STRING_STRING__STRING : Fn { +internal object Fn_TRIM_CHARS__STRING_STRING__STRING : Function { override val signature = FnSignature( name = "trim_chars", returns = PType.string(), parameters = listOf( - FnParameter("value", PType.string()), - FnParameter("chars", PType.string()), + Parameter("value", PType.string()), + Parameter("chars", PType.string()), ), isNullCall = true, isNullable = false, @@ -31,14 +31,14 @@ internal object Fn_TRIM_CHARS__STRING_STRING__STRING : Fn { } } -internal object Fn_TRIM_CHARS__SYMBOL_SYMBOL__SYMBOL : Fn { +internal object Fn_TRIM_CHARS__SYMBOL_SYMBOL__SYMBOL : Function { override val signature = FnSignature( name = "trim_chars", returns = PType.symbol(), parameters = listOf( - FnParameter("value", PType.symbol()), - FnParameter("chars", PType.symbol()), + Parameter("value", PType.symbol()), + Parameter("chars", PType.symbol()), ), isNullCall = true, isNullable = false, @@ -52,14 +52,14 @@ internal object Fn_TRIM_CHARS__SYMBOL_SYMBOL__SYMBOL : Fn { } } -internal object Fn_TRIM_CHARS__CLOB_CLOB__CLOB : Fn { +internal object Fn_TRIM_CHARS__CLOB_CLOB__CLOB : Function { override val signature = FnSignature( name = "trim_chars", returns = PType.clob(Int.MAX_VALUE), parameters = listOf( - FnParameter("value", PType.clob(Int.MAX_VALUE)), - FnParameter("chars", PType.clob(Int.MAX_VALUE)), + Parameter("value", PType.clob(Int.MAX_VALUE)), + Parameter("chars", PType.clob(Int.MAX_VALUE)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimLeading.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimLeading.kt index 3ca8c88a4d..ca95b2d6df 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimLeading.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimLeading.kt @@ -4,18 +4,18 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.utils.StringUtils.codepointTrimLeading import org.partiql.types.PType -internal object Fn_TRIM_LEADING__STRING__STRING : Fn { +internal object Fn_TRIM_LEADING__STRING__STRING : Function { override val signature = FnSignature( name = "trim_leading", returns = PType.string(), - parameters = listOf(FnParameter("value", PType.string())), + parameters = listOf(Parameter("value", PType.string())), isNullCall = true, isNullable = false, ) @@ -27,12 +27,12 @@ internal object Fn_TRIM_LEADING__STRING__STRING : Fn { } } -internal object Fn_TRIM_LEADING__SYMBOL__SYMBOL : Fn { +internal object Fn_TRIM_LEADING__SYMBOL__SYMBOL : Function { override val signature = FnSignature( name = "trim_leading", returns = PType.symbol(), - parameters = listOf(FnParameter("value", PType.symbol())), + parameters = listOf(Parameter("value", PType.symbol())), isNullCall = true, isNullable = false, ) @@ -44,12 +44,12 @@ internal object Fn_TRIM_LEADING__SYMBOL__SYMBOL : Fn { } } -internal object Fn_TRIM_LEADING__CLOB__CLOB : Fn { +internal object Fn_TRIM_LEADING__CLOB__CLOB : Function { override val signature = FnSignature( name = "trim_leading", returns = PType.clob(Int.MAX_VALUE), - parameters = listOf(FnParameter("value", PType.clob(Int.MAX_VALUE))), + parameters = listOf(Parameter("value", PType.clob(Int.MAX_VALUE))), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimLeadingChars.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimLeadingChars.kt index 214af682f1..4ee9d9260b 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimLeadingChars.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimLeadingChars.kt @@ -4,20 +4,20 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.utils.StringUtils.codepointTrimLeading import org.partiql.types.PType -internal object Fn_TRIM_LEADING_CHARS__STRING_STRING__STRING : Fn { +internal object Fn_TRIM_LEADING_CHARS__STRING_STRING__STRING : Function { override val signature = FnSignature( name = "trim_leading_chars", returns = PType.string(), parameters = listOf( - FnParameter("value", PType.string()), - FnParameter("chars", PType.string()), + Parameter("value", PType.string()), + Parameter("chars", PType.string()), ), isNullCall = true, isNullable = false, @@ -31,14 +31,14 @@ internal object Fn_TRIM_LEADING_CHARS__STRING_STRING__STRING : Fn { } } -internal object Fn_TRIM_LEADING_CHARS__SYMBOL_SYMBOL__SYMBOL : Fn { +internal object Fn_TRIM_LEADING_CHARS__SYMBOL_SYMBOL__SYMBOL : Function { override val signature = FnSignature( name = "trim_leading_chars", returns = PType.symbol(), parameters = listOf( - FnParameter("value", PType.symbol()), - FnParameter("chars", PType.symbol()), + Parameter("value", PType.symbol()), + Parameter("chars", PType.symbol()), ), isNullCall = true, isNullable = false, @@ -52,14 +52,14 @@ internal object Fn_TRIM_LEADING_CHARS__SYMBOL_SYMBOL__SYMBOL : Fn { } } -internal object Fn_TRIM_LEADING_CHARS__CLOB_CLOB__CLOB : Fn { +internal object Fn_TRIM_LEADING_CHARS__CLOB_CLOB__CLOB : Function { override val signature = FnSignature( name = "trim_leading_chars", returns = PType.clob(Int.MAX_VALUE), parameters = listOf( - FnParameter("value", PType.clob(Int.MAX_VALUE)), - FnParameter("chars", PType.clob(Int.MAX_VALUE)), + Parameter("value", PType.clob(Int.MAX_VALUE)), + Parameter("chars", PType.clob(Int.MAX_VALUE)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimTrailing.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimTrailing.kt index 425ae6770b..58bb02f406 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimTrailing.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimTrailing.kt @@ -4,18 +4,18 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.utils.StringUtils.codepointTrimTrailing import org.partiql.types.PType -internal object Fn_TRIM_TRAILING__STRING__STRING : Fn { +internal object Fn_TRIM_TRAILING__STRING__STRING : Function { override val signature = FnSignature( name = "trim_trailing", returns = PType.string(), - parameters = listOf(FnParameter("value", PType.string())), + parameters = listOf(Parameter("value", PType.string())), isNullCall = true, isNullable = false, ) @@ -27,12 +27,12 @@ internal object Fn_TRIM_TRAILING__STRING__STRING : Fn { } } -internal object Fn_TRIM_TRAILING__SYMBOL__SYMBOL : Fn { +internal object Fn_TRIM_TRAILING__SYMBOL__SYMBOL : Function { override val signature = FnSignature( name = "trim_trailing", returns = PType.symbol(), - parameters = listOf(FnParameter("value", PType.symbol())), + parameters = listOf(Parameter("value", PType.symbol())), isNullCall = true, isNullable = false, ) @@ -44,12 +44,12 @@ internal object Fn_TRIM_TRAILING__SYMBOL__SYMBOL : Fn { } } -internal object Fn_TRIM_TRAILING__CLOB__CLOB : Fn { +internal object Fn_TRIM_TRAILING__CLOB__CLOB : Function { override val signature = FnSignature( name = "trim_trailing", returns = PType.clob(Int.MAX_VALUE), - parameters = listOf(FnParameter("value", PType.clob(Int.MAX_VALUE))), + parameters = listOf(Parameter("value", PType.clob(Int.MAX_VALUE))), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimTrailingChars.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimTrailingChars.kt index 3243d0b32a..f9b20e7ea5 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimTrailingChars.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnTrimTrailingChars.kt @@ -4,20 +4,20 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.spi.fn.utils.StringUtils.codepointTrimTrailing import org.partiql.types.PType -internal object Fn_TRIM_TRAILING_CHARS__STRING_STRING__STRING : Fn { +internal object Fn_TRIM_TRAILING_CHARS__STRING_STRING__STRING : Function { override val signature = FnSignature( name = "trim_trailing_chars", returns = PType.string(), parameters = listOf( - FnParameter("value", PType.string()), - FnParameter("chars", PType.string()), + Parameter("value", PType.string()), + Parameter("chars", PType.string()), ), isNullCall = true, isNullable = false, @@ -31,14 +31,14 @@ internal object Fn_TRIM_TRAILING_CHARS__STRING_STRING__STRING : Fn { } } -internal object Fn_TRIM_TRAILING_CHARS__SYMBOL_SYMBOL__SYMBOL : Fn { +internal object Fn_TRIM_TRAILING_CHARS__SYMBOL_SYMBOL__SYMBOL : Function { override val signature = FnSignature( name = "trim_trailing_chars", returns = PType.symbol(), parameters = listOf( - FnParameter("value", PType.symbol()), - FnParameter("chars", PType.symbol()), + Parameter("value", PType.symbol()), + Parameter("chars", PType.symbol()), ), isNullCall = true, isNullable = false, @@ -52,14 +52,14 @@ internal object Fn_TRIM_TRAILING_CHARS__SYMBOL_SYMBOL__SYMBOL : Fn { } } -internal object Fn_TRIM_TRAILING_CHARS__CLOB_CLOB__CLOB : Fn { +internal object Fn_TRIM_TRAILING_CHARS__CLOB_CLOB__CLOB : Function { override val signature = FnSignature( name = "trim_trailing_chars", returns = PType.clob(Int.MAX_VALUE), parameters = listOf( - FnParameter("value", PType.clob(Int.MAX_VALUE)), - FnParameter("chars", PType.clob(Int.MAX_VALUE)), + Parameter("value", PType.clob(Int.MAX_VALUE)), + Parameter("chars", PType.clob(Int.MAX_VALUE)), ), isNullCall = true, isNullable = false, diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnUpper.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnUpper.kt index 7489df9023..86cf676e30 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnUpper.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnUpper.kt @@ -4,17 +4,17 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn -import org.partiql.spi.fn.FnParameter import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.Parameter import org.partiql.types.PType -internal object Fn_UPPER__STRING__STRING : Fn { +internal object Fn_UPPER__STRING__STRING : Function { override val signature = FnSignature( name = "upper", returns = PType.string(), - parameters = listOf(FnParameter("value", PType.string())), + parameters = listOf(Parameter("value", PType.string())), isNullCall = true, isNullable = false, ) @@ -26,12 +26,12 @@ internal object Fn_UPPER__STRING__STRING : Fn { } } -internal object Fn_UPPER__SYMBOL__SYMBOL : Fn { +internal object Fn_UPPER__SYMBOL__SYMBOL : Function { override val signature = FnSignature( name = "upper", returns = PType.symbol(), - parameters = listOf(FnParameter("value", PType.symbol())), + parameters = listOf(Parameter("value", PType.symbol())), isNullCall = true, isNullable = false, ) @@ -43,12 +43,12 @@ internal object Fn_UPPER__SYMBOL__SYMBOL : Fn { } } -internal object Fn_UPPER__CLOB__CLOB : Fn { +internal object Fn_UPPER__CLOB__CLOB : Function { override val signature = FnSignature( name = "upper", returns = PType.clob(Int.MAX_VALUE), - parameters = listOf(FnParameter("value", PType.clob(Int.MAX_VALUE))), + parameters = listOf(Parameter("value", PType.clob(Int.MAX_VALUE))), isNullCall = true, isNullable = false, ) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnUtcnow.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnUtcnow.kt index c6549573a3..69d29641d7 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnUtcnow.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/FnUtcnow.kt @@ -4,12 +4,12 @@ package org.partiql.spi.fn.builtins import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Fn import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function import org.partiql.types.PType import org.partiql.value.datetime.TimestampWithTimeZone -internal object Fn_UTCNOW____TIMESTAMP : Fn { +internal object Fn_UTCNOW____TIMESTAMP : Function { override val signature = FnSignature( name = "utcnow", diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/internal/Accumulator.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/internal/Accumulator.kt index dc9dd347a8..51c4f277f5 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/internal/Accumulator.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/internal/Accumulator.kt @@ -17,7 +17,7 @@ package org.partiql.spi.fn.builtins.internal import com.amazon.ion.Decimal import org.partiql.errors.TypeCheckException import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Agg +import org.partiql.spi.fn.Aggregation import org.partiql.types.PType import org.partiql.value.util.coerceNumbers import java.math.BigDecimal @@ -25,7 +25,7 @@ import java.math.BigInteger import java.math.MathContext import java.math.RoundingMode -internal abstract class Accumulator : Agg.Accumulator { +internal abstract class Accumulator : Aggregation.Accumulator { override fun next(args: Array) { val value = args[0] diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/internal/AccumulatorCountStar.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/internal/AccumulatorCountStar.kt index 4c986697ae..968ddaf40b 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/internal/AccumulatorCountStar.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/builtins/internal/AccumulatorCountStar.kt @@ -1,9 +1,9 @@ package org.partiql.spi.fn.builtins.internal import org.partiql.eval.value.Datum -import org.partiql.spi.fn.Agg +import org.partiql.spi.fn.Aggregation -internal class AccumulatorCountStar : Agg.Accumulator { +internal class AccumulatorCountStar : Aggregation.Accumulator { var count: Long = 0L diff --git a/plugins/partiql-local/src/main/kotlin/org/partiql/plugins/local/LocalCatalog.kt b/plugins/partiql-local/src/main/kotlin/org/partiql/plugins/local/LocalCatalog.kt index 7264c1693c..94c5a4b211 100644 --- a/plugins/partiql-local/src/main/kotlin/org/partiql/plugins/local/LocalCatalog.kt +++ b/plugins/partiql-local/src/main/kotlin/org/partiql/plugins/local/LocalCatalog.kt @@ -1,7 +1,6 @@ package org.partiql.plugins.local import org.partiql.planner.catalog.Catalog -import org.partiql.planner.catalog.Function import org.partiql.planner.catalog.Identifier import org.partiql.planner.catalog.Name import org.partiql.planner.catalog.Namespace @@ -93,8 +92,6 @@ internal class LocalCatalog( .map { toNamespace(it.toPath()) } } - override fun getFunctions(session: Session, name: Name): Collection = emptyList() - private fun toPath(namespace: Namespace): Path { var curr = root for (level in namespace) { From 9e82f111de131f2e768d2a9d8fd56adb46a6a3a3 Mon Sep 17 00:00:00 2001 From: "R. C. Howell" Date: Mon, 16 Sep 2024 15:54:13 -0700 Subject: [PATCH 2/3] [1/2] Resolve functions from the catalog --- .../src/main/kotlin/org/partiql/spi/catalog/Catalog.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/catalog/Catalog.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/catalog/Catalog.kt index 6dda8d27ee..f01bad5bd1 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/catalog/Catalog.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/catalog/Catalog.kt @@ -4,6 +4,10 @@ import org.partiql.spi.fn.Aggregation import org.partiql.spi.fn.Function import org.partiql.spi.fn.SqlFnProvider +import org.partiql.spi.fn.Aggregation +import org.partiql.spi.fn.Function +import org.partiql.spi.fn.SqlFnProvider + /** * Catalog interface for access to tables and routines. * From b23bd4139d2c480f96593a3638aa8bcf9e686a8d Mon Sep 17 00:00:00 2001 From: "R. C. Howell" Date: Tue, 17 Sep 2024 13:30:56 -0700 Subject: [PATCH 3/3] [2/2] Removes temp SqlFnProvider --- partiql-plan/api/partiql-plan.api | 52 ++++++------- .../src/main/resources/partiql_plan.ion | 6 +- .../org/partiql/planner/internal/Env.kt | 29 ++++--- .../partiql/planner/internal/FnComparator.kt | 18 +++-- .../org/partiql/planner/internal/FnMatch.kt | 16 ++-- .../partiql/planner/internal/FnResolver.kt | 18 +++-- .../org/partiql/planner/internal/ir/Nodes.kt | 77 +++++++------------ .../internal/transforms/PlanTransformV1.kt | 26 +------ .../planner/internal/transforms/Symbols.kt | 4 +- .../planner/internal/typer/PlanTyper.kt | 14 ++-- .../main/resources/partiql_plan_internal.ion | 4 +- .../planner/internal/typer/FnResolverTest.kt | 16 +++- partiql-spi/api/partiql-spi.api | 8 +- .../kotlin/org/partiql/spi/catalog/Catalog.kt | 10 +-- .../spi/fn/{SqlBuiltins.kt => Builtins.kt} | 23 ++++-- .../kotlin/org/partiql/spi/fn/Function.kt | 7 +- .../org/partiql/spi/fn/SqlFnProvider.kt | 35 --------- 17 files changed, 151 insertions(+), 212 deletions(-) rename partiql-spi/src/main/kotlin/org/partiql/spi/fn/{SqlBuiltins.kt => Builtins.kt} (96%) delete mode 100644 partiql-spi/src/main/kotlin/org/partiql/spi/fn/SqlFnProvider.kt diff --git a/partiql-plan/api/partiql-plan.api b/partiql-plan/api/partiql-plan.api index 2d913b9cb8..d46203ced0 100644 --- a/partiql-plan/api/partiql-plan.api +++ b/partiql-plan/api/partiql-plan.api @@ -25,15 +25,15 @@ public abstract class org/partiql/plan/Catalog$Item : org/partiql/plan/PlanNode public final class org/partiql/plan/Catalog$Item$Agg : org/partiql/plan/Catalog$Item { public static final field Companion Lorg/partiql/plan/Catalog$Item$Agg$Companion; + public final field aggregation Lorg/partiql/spi/fn/Aggregation; public final field path Ljava/util/List; - public final field specific Ljava/lang/String; - public fun (Ljava/util/List;Ljava/lang/String;)V + public fun (Ljava/util/List;Lorg/partiql/spi/fn/Aggregation;)V public fun accept (Lorg/partiql/plan/visitor/PlanVisitor;Ljava/lang/Object;)Ljava/lang/Object; public static final fun builder ()Lorg/partiql/plan/builder/CatalogItemAggBuilder; public final fun component1 ()Ljava/util/List; - public final fun component2 ()Ljava/lang/String; - public final fun copy (Ljava/util/List;Ljava/lang/String;)Lorg/partiql/plan/Catalog$Item$Agg; - public static synthetic fun copy$default (Lorg/partiql/plan/Catalog$Item$Agg;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lorg/partiql/plan/Catalog$Item$Agg; + public final fun component2 ()Lorg/partiql/spi/fn/Aggregation; + public final fun copy (Ljava/util/List;Lorg/partiql/spi/fn/Aggregation;)Lorg/partiql/plan/Catalog$Item$Agg; + public static synthetic fun copy$default (Lorg/partiql/plan/Catalog$Item$Agg;Ljava/util/List;Lorg/partiql/spi/fn/Aggregation;ILjava/lang/Object;)Lorg/partiql/plan/Catalog$Item$Agg; public fun equals (Ljava/lang/Object;)Z public fun getChildren ()Ljava/util/List; public fun hashCode ()I @@ -46,15 +46,15 @@ public final class org/partiql/plan/Catalog$Item$Agg$Companion { public final class org/partiql/plan/Catalog$Item$Fn : org/partiql/plan/Catalog$Item { public static final field Companion Lorg/partiql/plan/Catalog$Item$Fn$Companion; + public final field function Lorg/partiql/spi/fn/Function; public final field path Ljava/util/List; - public final field specific Ljava/lang/String; - public fun (Ljava/util/List;Ljava/lang/String;)V + public fun (Ljava/util/List;Lorg/partiql/spi/fn/Function;)V public fun accept (Lorg/partiql/plan/visitor/PlanVisitor;Ljava/lang/Object;)Ljava/lang/Object; public static final fun builder ()Lorg/partiql/plan/builder/CatalogItemFnBuilder; public final fun component1 ()Ljava/util/List; - public final fun component2 ()Ljava/lang/String; - public final fun copy (Ljava/util/List;Ljava/lang/String;)Lorg/partiql/plan/Catalog$Item$Fn; - public static synthetic fun copy$default (Lorg/partiql/plan/Catalog$Item$Fn;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lorg/partiql/plan/Catalog$Item$Fn; + public final fun component2 ()Lorg/partiql/spi/fn/Function; + public final fun copy (Ljava/util/List;Lorg/partiql/spi/fn/Function;)Lorg/partiql/plan/Catalog$Item$Fn; + public static synthetic fun copy$default (Lorg/partiql/plan/Catalog$Item$Fn;Ljava/util/List;Lorg/partiql/spi/fn/Function;ILjava/lang/Object;)Lorg/partiql/plan/Catalog$Item$Fn; public fun equals (Ljava/lang/Object;)Z public fun getChildren ()Ljava/util/List; public fun hashCode ()I @@ -163,8 +163,8 @@ public final class org/partiql/plan/PartiQLPlan$Companion { public final class org/partiql/plan/Plan { public static final fun catalog (Ljava/lang/String;Ljava/util/List;)Lorg/partiql/plan/Catalog; - public static final fun catalogItemAgg (Ljava/util/List;Ljava/lang/String;)Lorg/partiql/plan/Catalog$Item$Agg; - public static final fun catalogItemFn (Ljava/util/List;Ljava/lang/String;)Lorg/partiql/plan/Catalog$Item$Fn; + public static final fun catalogItemAgg (Ljava/util/List;Lorg/partiql/spi/fn/Aggregation;)Lorg/partiql/plan/Catalog$Item$Agg; + public static final fun catalogItemFn (Ljava/util/List;Lorg/partiql/spi/fn/Function;)Lorg/partiql/plan/Catalog$Item$Fn; public static final fun catalogItemValue (Ljava/util/List;Lorg/partiql/types/PType;)Lorg/partiql/plan/Catalog$Item$Value; public static final fun identifierQualified (Lorg/partiql/plan/Identifier$Symbol;Ljava/util/List;)Lorg/partiql/plan/Identifier$Qualified; public static final fun identifierSymbol (Ljava/lang/String;Lorg/partiql/plan/Identifier$CaseSensitivity;)Lorg/partiql/plan/Identifier$Symbol; @@ -1470,28 +1470,28 @@ public final class org/partiql/plan/builder/CatalogBuilder { public final class org/partiql/plan/builder/CatalogItemAggBuilder { public fun ()V - public fun (Ljava/util/List;Ljava/lang/String;)V - public synthetic fun (Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ljava/util/List;Lorg/partiql/spi/fn/Aggregation;)V + public synthetic fun (Ljava/util/List;Lorg/partiql/spi/fn/Aggregation;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun aggregation (Lorg/partiql/spi/fn/Aggregation;)Lorg/partiql/plan/builder/CatalogItemAggBuilder; public final fun build ()Lorg/partiql/plan/Catalog$Item$Agg; + public final fun getAggregation ()Lorg/partiql/spi/fn/Aggregation; public final fun getPath ()Ljava/util/List; - public final fun getSpecific ()Ljava/lang/String; public final fun path (Ljava/util/List;)Lorg/partiql/plan/builder/CatalogItemAggBuilder; + public final fun setAggregation (Lorg/partiql/spi/fn/Aggregation;)V public final fun setPath (Ljava/util/List;)V - public final fun setSpecific (Ljava/lang/String;)V - public final fun specific (Ljava/lang/String;)Lorg/partiql/plan/builder/CatalogItemAggBuilder; } public final class org/partiql/plan/builder/CatalogItemFnBuilder { public fun ()V - public fun (Ljava/util/List;Ljava/lang/String;)V - public synthetic fun (Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ljava/util/List;Lorg/partiql/spi/fn/Function;)V + public synthetic fun (Ljava/util/List;Lorg/partiql/spi/fn/Function;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun build ()Lorg/partiql/plan/Catalog$Item$Fn; + public final fun function (Lorg/partiql/spi/fn/Function;)Lorg/partiql/plan/builder/CatalogItemFnBuilder; + public final fun getFunction ()Lorg/partiql/spi/fn/Function; public final fun getPath ()Ljava/util/List; - public final fun getSpecific ()Ljava/lang/String; public final fun path (Ljava/util/List;)Lorg/partiql/plan/builder/CatalogItemFnBuilder; + public final fun setFunction (Lorg/partiql/spi/fn/Function;)V public final fun setPath (Ljava/util/List;)V - public final fun setSpecific (Ljava/lang/String;)V - public final fun specific (Ljava/lang/String;)Lorg/partiql/plan/builder/CatalogItemFnBuilder; } public final class org/partiql/plan/builder/CatalogItemValueBuilder { @@ -1550,10 +1550,10 @@ public final class org/partiql/plan/builder/PlanBuilder { public fun ()V public final fun catalog (Ljava/lang/String;Ljava/util/List;Lkotlin/jvm/functions/Function1;)Lorg/partiql/plan/Catalog; public static synthetic fun catalog$default (Lorg/partiql/plan/builder/PlanBuilder;Ljava/lang/String;Ljava/util/List;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/partiql/plan/Catalog; - public final fun catalogItemAgg (Ljava/util/List;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)Lorg/partiql/plan/Catalog$Item$Agg; - public static synthetic fun catalogItemAgg$default (Lorg/partiql/plan/builder/PlanBuilder;Ljava/util/List;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/partiql/plan/Catalog$Item$Agg; - public final fun catalogItemFn (Ljava/util/List;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)Lorg/partiql/plan/Catalog$Item$Fn; - public static synthetic fun catalogItemFn$default (Lorg/partiql/plan/builder/PlanBuilder;Ljava/util/List;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/partiql/plan/Catalog$Item$Fn; + public final fun catalogItemAgg (Ljava/util/List;Lorg/partiql/spi/fn/Aggregation;Lkotlin/jvm/functions/Function1;)Lorg/partiql/plan/Catalog$Item$Agg; + public static synthetic fun catalogItemAgg$default (Lorg/partiql/plan/builder/PlanBuilder;Ljava/util/List;Lorg/partiql/spi/fn/Aggregation;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/partiql/plan/Catalog$Item$Agg; + public final fun catalogItemFn (Ljava/util/List;Lorg/partiql/spi/fn/Function;Lkotlin/jvm/functions/Function1;)Lorg/partiql/plan/Catalog$Item$Fn; + public static synthetic fun catalogItemFn$default (Lorg/partiql/plan/builder/PlanBuilder;Ljava/util/List;Lorg/partiql/spi/fn/Function;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/partiql/plan/Catalog$Item$Fn; public final fun catalogItemValue (Ljava/util/List;Lorg/partiql/types/PType;Lkotlin/jvm/functions/Function1;)Lorg/partiql/plan/Catalog$Item$Value; public static synthetic fun catalogItemValue$default (Lorg/partiql/plan/builder/PlanBuilder;Ljava/util/List;Lorg/partiql/types/PType;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/partiql/plan/Catalog$Item$Value; public final fun identifierQualified (Lorg/partiql/plan/Identifier$Symbol;Ljava/util/List;Lkotlin/jvm/functions/Function1;)Lorg/partiql/plan/Identifier$Qualified; diff --git a/partiql-plan/src/main/resources/partiql_plan.ion b/partiql-plan/src/main/resources/partiql_plan.ion index 6b909bee67..19414e918f 100644 --- a/partiql-plan/src/main/resources/partiql_plan.ion +++ b/partiql-plan/src/main/resources/partiql_plan.ion @@ -3,6 +3,8 @@ imports::{ partiql_value::'org.partiql.value.PartiQLValue', partiql_value_type::'org.partiql.types.PType', static_type::'org.partiql.types.PType', + function::'org.partiql.spi.fn.Function', + aggregation::'org.partiql.spi.fn.Aggregation', ], } @@ -22,11 +24,11 @@ catalog::{ }, fn::{ path: list::[string], - specific: string, + function: function, }, agg::{ path: list::[string], - specific: string, + aggregation: aggregation, }, ] ] diff --git a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/Env.kt b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/Env.kt index f072e5806f..98aa8e0f90 100644 --- a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/Env.kt +++ b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/Env.kt @@ -21,8 +21,7 @@ import org.partiql.spi.catalog.Catalogs import org.partiql.spi.catalog.Identifier import org.partiql.spi.catalog.Name import org.partiql.spi.catalog.Session -import org.partiql.spi.fn.AggSignature -import org.partiql.spi.fn.SqlFnProvider +import org.partiql.spi.fn.Aggregation import org.partiql.types.PType import org.partiql.types.PType.Kind @@ -38,6 +37,9 @@ import org.partiql.types.PType.Kind */ internal class Env(private val session: Session) { + /** + * Catalogs provider. + */ private val catalogs: Catalogs = session.getCatalogs() /** @@ -45,11 +47,6 @@ internal class Env(private val session: Session) { */ private val default: Catalog = catalogs.getCatalog(session.getCatalog()) ?: error("Default catalog does not exist") - /** - * A [SqlFnProvider] for looking up built-in functions. - */ - private val fns: SqlFnProvider = SqlFnProvider - /** * Catalog lookup needs to search (3x) to handle schema-qualified and catalog-qualified use-cases. * @@ -114,7 +111,7 @@ internal class Env(private val session: Session) { // 1. Search in the current catalog and namespace. val catalog = default val name = identifier.getIdentifier().getText().lowercase() // CASE-NORMALIZED LOWER - val variants = catalog.getFunctions(session, name).map { it.signature } + val variants = catalog.getFunctions(session, name).toList() if (variants.isEmpty()) { return null } @@ -149,7 +146,7 @@ internal class Env(private val session: Session) { fn = refFn( catalog = catalog.getName(), name = Name.of(name), - signature = it.signature, + signature = it.function, ), coercions = it.mapping.toList(), ) @@ -162,7 +159,7 @@ internal class Env(private val session: Session) { val ref = refFn( catalog = catalog.getName(), name = Name.of(name), - signature = match.signature, + signature = match.function, ) // Apply the coercions as explicit casts val coercions: List = args.mapIndexed { i, arg -> @@ -183,7 +180,7 @@ internal class Env(private val session: Session) { // 1. Search in the current catalog and namespace. val catalog = default val name = path.lowercase() - val candidates = catalog.getAggregations(session, name).map { it.signature } + val candidates = catalog.getAggregations(session, name).toList() if (candidates.isEmpty()) { return null } @@ -243,7 +240,7 @@ internal class Env(private val session: Session) { return rhs.takeLast(rhs.size - lhs.size) } - private fun match(candidates: List, args: List): Pair>? { + private fun match(candidates: List, args: List): Pair>? { // 1. Check for an exact match for (candidate in candidates) { if (candidate.matches(args)) { @@ -251,7 +248,7 @@ internal class Env(private val session: Session) { } } // 2. Look for best match. - var match: Pair>? = null + var match: Pair>? = null for (candidate in candidates) { val m = candidate.match(args) ?: continue // TODO AggMatch comparison @@ -269,7 +266,8 @@ internal class Env(private val session: Session) { * Check if this function accepts the exact input argument types. Assume same arity. */ - private fun AggSignature.matches(args: List): Boolean { + private fun Aggregation.matches(args: List): Boolean { + val parameters = getParameters() for (i in args.indices) { val a = args[i] val p = parameters[i] @@ -284,7 +282,8 @@ internal class Env(private val session: Session) { * @param args * @return */ - private fun AggSignature.match(args: List): Pair>? { + private fun Aggregation.match(args: List): Pair>? { + val parameters = getParameters() val mapping = arrayOfNulls(args.size) for (i in args.indices) { val arg = args[i] diff --git a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnComparator.kt b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnComparator.kt index 08642ad891..d1037bc314 100644 --- a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnComparator.kt +++ b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnComparator.kt @@ -1,6 +1,6 @@ package org.partiql.planner.internal -import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function import org.partiql.spi.fn.Parameter import org.partiql.types.PType import org.partiql.types.PType.Kind @@ -11,17 +11,19 @@ import org.partiql.types.PType.Kind * 1. Fewest args first * 2. Parameters are compared left-to-right */ -internal object FnComparator : Comparator { +internal object FnComparator : Comparator { - override fun compare(fn1: FnSignature, fn2: FnSignature): Int { + override fun compare(fn1: Function, fn2: Function): Int { + val params1 = fn1.getParameters() + val params2 = fn2.getParameters() // Compare number of arguments - if (fn1.parameters.size != fn2.parameters.size) { - return fn1.parameters.size - fn2.parameters.size + if (params1.size != params2.size) { + return params1.size - params2.size } // Compare operand type precedence - for (i in fn1.parameters.indices) { - val p1 = fn1.parameters[i] - val p2 = fn2.parameters[i] + for (i in params1.indices) { + val p1 = params1[i] + val p2 = params2[i] val comparison = p1.compareTo(p2) if (comparison != 0) return comparison } diff --git a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnMatch.kt b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnMatch.kt index 7107b6eb63..f25f9625cc 100644 --- a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnMatch.kt +++ b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnMatch.kt @@ -1,7 +1,7 @@ package org.partiql.planner.internal import org.partiql.planner.internal.ir.Ref -import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function /** * Result of matching an unresolved function. @@ -12,11 +12,11 @@ internal sealed class FnMatch { /** * Successful match of a static function call. * - * @property signature + * @property function * @property mapping */ - data class Static( - val signature: FnSignature, + class Static( + val function: Function, val mapping: Array, ) : FnMatch() { @@ -31,7 +31,7 @@ internal sealed class FnMatch { other as Static - if (signature != other.signature) return false + if (function != other.function) return false if (!mapping.contentEquals(other.mapping)) return false if (exact != other.exact) return false @@ -39,7 +39,7 @@ internal sealed class FnMatch { } override fun hashCode(): Int { - var result = signature.hashCode() + var result = function.hashCode() result = 31 * result + mapping.contentHashCode() result = 31 * result + exact return result @@ -51,7 +51,5 @@ internal sealed class FnMatch { * * @property candidates Ordered list of potentially applicable functions to dispatch dynamically. */ - data class Dynamic( - val candidates: List, - ) : FnMatch() + class Dynamic(val candidates: List) : FnMatch() } diff --git a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnResolver.kt b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnResolver.kt index a1054daa14..fa1e6061ba 100644 --- a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnResolver.kt +++ b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/FnResolver.kt @@ -4,7 +4,7 @@ import org.partiql.planner.internal.casts.Coercions import org.partiql.planner.internal.ir.Ref import org.partiql.planner.internal.typer.CompilerType import org.partiql.planner.internal.typer.PlanTyper.Companion.toCType -import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function import org.partiql.types.PType.Kind /** @@ -34,9 +34,9 @@ internal object FnResolver { * @param args * @return */ - fun resolve(variants: List, args: List): FnMatch? { + fun resolve(variants: List, args: List): FnMatch? { val candidates = variants - .filter { it.parameters.size == args.size } + .filter { it.getParameters().size == args.size } .ifEmpty { return null } // 1. Look for exact match @@ -58,7 +58,7 @@ internal object FnResolver { return resolveBestMatch(candidates, args) } - private fun resolveBestMatch(candidates: List, args: List): FnMatch.Static? { + private fun resolveBestMatch(candidates: List, args: List): FnMatch.Static? { // 3. Discard functions that cannot be matched (via implicit coercion or exact matches) val invocableMatches = match(candidates, args).ifEmpty { return null } if (invocableMatches.size == 1) { @@ -86,7 +86,7 @@ internal object FnResolver { * @param args * @return */ - private fun match(candidates: List, args: List): List { + private fun match(candidates: List, args: List): List { val matches = mutableSetOf() for (candidate in candidates) { val m = candidate.match(args) ?: continue @@ -116,7 +116,8 @@ internal object FnResolver { /** * Check if this function accepts the exact input argument types. Assume same arity. */ - private fun FnSignature.matchesExactly(args: List): Boolean { + private fun Function.matchesExactly(args: List): Boolean { + val parameters = getParameters() for (i in args.indices) { val a = args[i] val p = parameters[i] @@ -131,7 +132,8 @@ internal object FnResolver { * @param args * @return */ - private fun FnSignature.match(args: List): MatchResult? { + private fun Function.match(args: List): MatchResult? { + val parameters = getParameters() val mapping = arrayOfNulls(args.size) var exactInputTypes: Int = 0 for (i in args.indices) { @@ -170,7 +172,7 @@ internal object FnResolver { private object MatchResultComparator : Comparator { override fun compare(o1: MatchResult, o2: MatchResult): Int { - return FnComparator.reversed().compare(o1.match.signature, o2.match.signature) + return FnComparator.reversed().compare(o1.match.function, o2.match.function) } } } diff --git a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/ir/Nodes.kt b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/ir/Nodes.kt index ac4f20bc6b..428588d38e 100644 --- a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/ir/Nodes.kt +++ b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/ir/Nodes.kt @@ -70,8 +70,8 @@ import org.partiql.planner.internal.typer.CompilerType import org.partiql.spi.catalog.Identifier import org.partiql.spi.catalog.Name import org.partiql.spi.catalog.Table -import org.partiql.spi.fn.AggSignature -import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Aggregation +import org.partiql.spi.fn.Function import org.partiql.value.PartiQLValue import org.partiql.value.PartiQLValueExperimental import kotlin.random.Random @@ -128,7 +128,7 @@ internal sealed class Ref : PlanNode() { internal data class Fn( @JvmField internal val catalog: String, @JvmField internal val name: Name, - @JvmField internal val signature: FnSignature, + @JvmField internal val signature: Function, ) : Ref() { public override val children: List = emptyList() @@ -143,7 +143,7 @@ internal sealed class Ref : PlanNode() { internal data class Agg( @JvmField internal val catalog: String, @JvmField internal val name: Name, - @JvmField internal val signature: AggSignature, + @JvmField internal val signature: Aggregation, ) : Ref() { public override val children: List = emptyList() @@ -190,8 +190,7 @@ internal sealed class Statement : PlanNode() { kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitStatementQuery(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitStatementQuery(this, ctx) internal companion object { @JvmStatic @@ -345,8 +344,7 @@ internal data class Rex( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRexOpPathKey(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRexOpPathKey(this, ctx) internal companion object { @JvmStatic @@ -557,8 +555,7 @@ internal data class Rex( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRexOpNullif(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRexOpNullif(this, ctx) internal companion object { @JvmStatic @@ -575,8 +572,7 @@ internal data class Rex( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRexOpCoalesce(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRexOpCoalesce(this, ctx) internal companion object { @JvmStatic @@ -593,8 +589,7 @@ internal data class Rex( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRexOpCollection(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRexOpCollection(this, ctx) internal companion object { @JvmStatic @@ -611,8 +606,7 @@ internal data class Rex( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRexOpStruct(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRexOpStruct(this, ctx) internal data class Field( @JvmField internal val k: Rex, @@ -653,8 +647,7 @@ internal data class Rex( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRexOpPivot(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRexOpPivot(this, ctx) internal companion object { @JvmStatic @@ -674,8 +667,7 @@ internal data class Rex( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRexOpSubquery(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRexOpSubquery(this, ctx) internal enum class Coercion { SCALAR, ROW, @@ -698,8 +690,7 @@ internal data class Rex( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRexOpSelect(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRexOpSelect(this, ctx) internal companion object { @JvmStatic @@ -716,8 +707,7 @@ internal data class Rex( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRexOpTupleUnion(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRexOpTupleUnion(this, ctx) internal companion object { @JvmStatic @@ -753,8 +743,7 @@ internal data class Rex( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRexOpMissing(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRexOpMissing(this, ctx) internal companion object { @JvmStatic @@ -852,8 +841,7 @@ internal data class Rel( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRelOpScanIndexed(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRelOpScanIndexed(this, ctx) internal companion object { @JvmStatic @@ -870,8 +858,7 @@ internal data class Rel( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRelOpUnpivot(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRelOpUnpivot(this, ctx) internal companion object { @JvmStatic @@ -888,8 +875,7 @@ internal data class Rel( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRelOpDistinct(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRelOpDistinct(this, ctx) internal companion object { @JvmStatic @@ -908,8 +894,7 @@ internal data class Rel( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRelOpFilter(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRelOpFilter(this, ctx) internal companion object { @JvmStatic @@ -972,8 +957,7 @@ internal data class Rel( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRelOpUnion(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRelOpUnion(this, ctx) internal companion object { @JvmStatic @@ -994,8 +978,7 @@ internal data class Rel( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRelOpIntersect(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRelOpIntersect(this, ctx) internal companion object { @JvmStatic @@ -1016,8 +999,7 @@ internal data class Rel( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRelOpExcept(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRelOpExcept(this, ctx) internal companion object { @JvmStatic @@ -1036,8 +1018,7 @@ internal data class Rel( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRelOpLimit(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRelOpLimit(this, ctx) internal companion object { @JvmStatic @@ -1056,8 +1037,7 @@ internal data class Rel( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRelOpOffset(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRelOpOffset(this, ctx) internal companion object { @JvmStatic @@ -1076,8 +1056,7 @@ internal data class Rel( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRelOpProject(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRelOpProject(this, ctx) internal companion object { @JvmStatic @@ -1125,8 +1104,7 @@ internal data class Rel( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRelOpAggregate(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRelOpAggregate(this, ctx) internal enum class Strategy { FULL, PARTIAL, @@ -1198,8 +1176,7 @@ internal data class Rel( kids.filterNotNull() } - override fun accept(visitor: PlanVisitor, ctx: C): R = - visitor.visitRelOpExclude(this, ctx) + override fun accept(visitor: PlanVisitor, ctx: C): R = visitor.visitRelOpExclude(this, ctx) internal data class Path( @JvmField internal val root: Rex.Op, diff --git a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/PlanTransformV1.kt b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/PlanTransformV1.kt index e1cb8a1a8e..99012e03f5 100644 --- a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/PlanTransformV1.kt +++ b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/PlanTransformV1.kt @@ -19,12 +19,8 @@ import org.partiql.plan.v1.operator.rex.RexStruct import org.partiql.plan.v1.operator.rex.RexVar import org.partiql.planner.internal.PlannerFlag import org.partiql.planner.internal.ProblemGenerator -import org.partiql.planner.internal.ir.Ref import org.partiql.planner.internal.ir.SetQuantifier import org.partiql.planner.internal.ir.visitor.PlanBaseVisitor -import org.partiql.spi.fn.Aggregation -import org.partiql.spi.fn.Function -import org.partiql.spi.fn.SqlFnProvider import org.partiql.spi.value.Datum import org.partiql.types.Field import org.partiql.types.PType @@ -172,13 +168,13 @@ internal class PlanTransformV1(private val flags: Set) { } override fun visitRexOpCallDynamic(node: IRex.Op.Call.Dynamic, ctx: PType): Any { - val fns = node.candidates.map { getFn(it.fn) } + val fns = node.candidates.map { it.fn.signature } val args = node.args.map { visitRex(it, ctx) } return factory.rexCall(fns, args) } override fun visitRexOpCallStatic(node: IRex.Op.Call.Static, ctx: PType): Any { - val fn = getFn(node.fn) + val fn = node.fn.signature val args = node.args.map { visitRex(it, ctx) } return factory.rexCall(fn, args) } @@ -271,7 +267,7 @@ internal class PlanTransformV1(private val flags: Set) { } override fun visitRelOpAggregateCallResolved(node: IRel.Op.Aggregate.Call.Resolved, ctx: PType): Any { - val agg = getAgg(node.agg) + val agg = node.agg.signature val args = node.args.map { visitRex(it, ctx) } val isDistinct = node.setq == SetQuantifier.DISTINCT return factory.relAggregateCall(agg, args, isDistinct) @@ -438,22 +434,6 @@ internal class PlanTransformV1(private val flags: Set) { } } - /** - * TODO TEMPORARY! - */ - private fun getFn(ref: Ref.Fn): Function { - val specific = ref.signature.specific - return SqlFnProvider.getFn(specific) ?: error("Function not found: $specific") - } - - /** - * TODO TEMPORARY! - */ - private fun getAgg(ref: Ref.Agg): Aggregation { - val specific = ref.signature.specific - return SqlFnProvider.getAgg(specific) ?: error("Aggregation not found: $specific") - } - /** * TODO TEMPORARY! */ diff --git a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/Symbols.kt b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/Symbols.kt index 607d13ee2c..53049dddda 100644 --- a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/Symbols.kt +++ b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/Symbols.kt @@ -32,12 +32,12 @@ internal class Symbols private constructor() { fun insert(ref: Ref.Fn): CatalogRef = insert( catalog = ref.catalog, - item = catalogItemFn(ref.name.toList(), ref.signature.specific), + item = catalogItemFn(ref.name.toList(), ref.signature), ) fun insert(ref: Ref.Agg): CatalogRef = insert( catalog = ref.catalog, - item = catalogItemAgg(ref.name.toList(), ref.signature.specific), + item = catalogItemAgg(ref.name.toList(), ref.signature), ) private fun insert(catalog: String, item: Catalog.Item): CatalogRef { diff --git a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/typer/PlanTyper.kt b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/typer/PlanTyper.kt index cf27536cb8..9406139991 100644 --- a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/typer/PlanTyper.kt +++ b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/typer/PlanTyper.kt @@ -785,7 +785,6 @@ internal class PlanTyper(private val env: Env) { * @param ctx * @return */ - override fun visitRexOpCallStatic(node: Rex.Op.Call.Static, ctx: CompilerType?): Rex { // Apply the coercions as explicit casts val args: List = node.args.map { @@ -798,16 +797,16 @@ internal class PlanTyper(private val env: Env) { // Check if any arg is always missing val argIsAlwaysMissing = args.any { it.type.isMissingValue } - if (node.fn.signature.isMissingCall && argIsAlwaysMissing) { + if (node.fn.signature.isMissingCall() && argIsAlwaysMissing) { return ProblemGenerator.missingRex( node, ProblemGenerator.expressionAlwaysReturnsMissing("Static function always receives MISSING arguments."), - CompilerType(node.fn.signature.returns, isMissingValue = true) + CompilerType(node.fn.signature.getReturnType(), isMissingValue = true) ) } // Infer fn return type - return rex(CompilerType(node.fn.signature.returns), Rex.Op.Call.Static(node.fn, args)) + return rex(CompilerType(node.fn.signature.getReturnType()), Rex.Op.Call.Static(node.fn, args)) } /** @@ -817,9 +816,8 @@ internal class PlanTyper(private val env: Env) { * @param ctx * @return */ - override fun visitRexOpCallDynamic(node: Rex.Op.Call.Dynamic, ctx: CompilerType?): Rex { - val types = node.candidates.map { candidate -> candidate.fn.signature.returns }.toMutableSet() + val types = node.candidates.map { candidate -> candidate.fn.signature.getReturnType() }.toMutableSet() // TODO: Should this always be DYNAMIC? return Rex(type = CompilerType(anyOf(types) ?: PType.dynamic()), op = node) } @@ -1165,7 +1163,7 @@ internal class PlanTyper(private val env: Env) { if (firstBranchCondition !is Rex.Op.Call.Static) { return null } - if (!firstBranchCondition.fn.signature.name.equals("is_struct", ignoreCase = true)) { + if (!firstBranchCondition.fn.signature.getName().equals("is_struct", ignoreCase = true)) { return null } val firstBranchResultType = firstBranch.rex.type @@ -1250,7 +1248,7 @@ internal class PlanTyper(private val env: Env) { // Resolve the function val call = env.resolveAgg(node.name, node.setq, args) ?: return argsResolved to CompilerType(PType.dynamic()) - return call to CompilerType(call.agg.signature.returns) + return call to CompilerType(call.agg.signature.getReturnType()) } } diff --git a/partiql-planner/src/main/resources/partiql_plan_internal.ion b/partiql-planner/src/main/resources/partiql_plan_internal.ion index 80141fc7bb..a45efb3bdc 100644 --- a/partiql-planner/src/main/resources/partiql_plan_internal.ion +++ b/partiql-planner/src/main/resources/partiql_plan_internal.ion @@ -5,8 +5,8 @@ imports::{ partiql_value::'org.partiql.value.PartiQLValue', partiql_value_type::'org.partiql.planner.internal.typer.CompilerType', static_type::'org.partiql.planner.internal.typer.CompilerType', - fn_signature::'org.partiql.spi.fn.FnSignature', - agg_signature::'org.partiql.spi.fn.AggSignature', + fn_signature::'org.partiql.spi.fn.Function', + agg_signature::'org.partiql.spi.fn.Aggregation', problem::'org.partiql.errors.Problem', table::'org.partiql.spi.catalog.Table', ], diff --git a/partiql-planner/src/test/kotlin/org/partiql/planner/internal/typer/FnResolverTest.kt b/partiql-planner/src/test/kotlin/org/partiql/planner/internal/typer/FnResolverTest.kt index 058e83cf7b..413080037d 100644 --- a/partiql-planner/src/test/kotlin/org/partiql/planner/internal/typer/FnResolverTest.kt +++ b/partiql-planner/src/test/kotlin/org/partiql/planner/internal/typer/FnResolverTest.kt @@ -6,7 +6,9 @@ import org.partiql.planner.internal.FnMatch import org.partiql.planner.internal.FnResolver import org.partiql.planner.internal.typer.PlanTyper.Companion.toCType import org.partiql.spi.fn.FnSignature +import org.partiql.spi.fn.Function import org.partiql.spi.fn.Parameter +import org.partiql.spi.value.Datum import org.partiql.types.PType /** @@ -27,7 +29,7 @@ class FnResolverTest { Parameter("arg-0", PType.doublePrecision()), Parameter("arg-1", PType.doublePrecision()), ), - ) + ).toFunction(), ) val args = listOf(PType.integer().toCType(), PType.doublePrecision().toCType()) val expectedImplicitCasts = listOf(true, false) @@ -46,7 +48,7 @@ class FnResolverTest { Parameter("delimiter", PType.string()), ), isNullable = false, - ) + ).toFunction() ) val args = listOf(PType.string().toCType(), PType.string().toCType()) val expectedImplicitCasts = listOf(false, false) @@ -54,12 +56,20 @@ class FnResolverTest { case.assert() } + private fun FnSignature.toFunction(): Function { + val self = this + return object : Function { + override val signature: FnSignature = self + override fun invoke(args: Array): Datum = Datum.nullValue() + } + } + private sealed class Case { abstract fun assert() class Success( - private val variants: List, + private val variants: List, private val inputs: List, private val expectedImplicitCast: List, ) : Case() { diff --git a/partiql-spi/api/partiql-spi.api b/partiql-spi/api/partiql-spi.api index cfe2525daa..03b459c544 100644 --- a/partiql-spi/api/partiql-spi.api +++ b/partiql-spi/api/partiql-spi.api @@ -609,6 +609,7 @@ public abstract interface class org/partiql/spi/fn/Function : org/partiql/spi/fn public abstract fun getSignature ()Lorg/partiql/spi/fn/FnSignature; public abstract fun getSpecific ()Ljava/lang/String; public abstract fun invoke ([Lorg/partiql/spi/value/Datum;)Lorg/partiql/spi/value/Datum; + public abstract fun isMissingCall ()Z public abstract fun isNullCall ()Z } @@ -617,6 +618,7 @@ public final class org/partiql/spi/fn/Function$DefaultImpls { public static fun getParameters (Lorg/partiql/spi/fn/Function;)[Lorg/partiql/spi/fn/Parameter; public static fun getReturnType (Lorg/partiql/spi/fn/Function;)Lorg/partiql/types/PType; public static fun getSpecific (Lorg/partiql/spi/fn/Function;)Ljava/lang/String; + public static fun isMissingCall (Lorg/partiql/spi/fn/Function;)Z public static fun isNullCall (Lorg/partiql/spi/fn/Function;)Z } @@ -637,12 +639,6 @@ public final class org/partiql/spi/fn/Routine$DefaultImpls { public static fun getParameters (Lorg/partiql/spi/fn/Routine;)[Lorg/partiql/spi/fn/Parameter; } -public final class org/partiql/spi/fn/SqlFnProvider { - public static final field INSTANCE Lorg/partiql/spi/fn/SqlFnProvider; - public final fun getAgg (Ljava/lang/String;)Lorg/partiql/spi/fn/Aggregation; - public final fun getFn (Ljava/lang/String;)Lorg/partiql/spi/fn/Function; -} - public abstract interface class org/partiql/spi/value/Datum : java/lang/Iterable { public static fun bag (Ljava/lang/Iterable;)Lorg/partiql/spi/value/Datum; public static fun bigint (J)Lorg/partiql/spi/value/Datum; diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/catalog/Catalog.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/catalog/Catalog.kt index f01bad5bd1..e65e318f69 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/catalog/Catalog.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/catalog/Catalog.kt @@ -1,12 +1,8 @@ package org.partiql.spi.catalog import org.partiql.spi.fn.Aggregation +import org.partiql.spi.fn.Builtins import org.partiql.spi.fn.Function -import org.partiql.spi.fn.SqlFnProvider - -import org.partiql.spi.fn.Aggregation -import org.partiql.spi.fn.Function -import org.partiql.spi.fn.SqlFnProvider /** * Catalog interface for access to tables and routines. @@ -70,10 +66,10 @@ public interface Catalog { /** * Returns a collection of scalar functions in this catalog with the given name, or an empty list if none. */ - public fun getFunctions(session: Session, name: String): Collection = SqlFnProvider.lookupFn(name) + public fun getFunctions(session: Session, name: String): Collection = Builtins.getFunctions(name) /** * Returns a collection of aggregation functions in this catalog with the given name, or an empty list if none. */ - public fun getAggregations(session: Session, name: String): Collection = SqlFnProvider.lookupAgg(name) + public fun getAggregations(session: Session, name: String): Collection = Builtins.getAggregations(name) } diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/SqlBuiltins.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Builtins.kt similarity index 96% rename from partiql-spi/src/main/kotlin/org/partiql/spi/fn/SqlBuiltins.kt rename to partiql-spi/src/main/kotlin/org/partiql/spi/fn/Builtins.kt index 91bb0506b5..d671fc0885 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/SqlBuiltins.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Builtins.kt @@ -4,12 +4,21 @@ package org.partiql.spi.fn import org.partiql.spi.fn.builtins.* /** - * This is where we will register all SQL builtins. + * This is where we will register all SQL builtins; consider raising a "library" interface. + * + * TODO some cleanup efforts + * - make a libs folder + * - mv fn -> functions + * - organize builtins by type + * - add type families */ -internal object SqlBuiltins { +internal object Builtins { - @JvmStatic - val builtins: List = listOf( + fun getFunctions(name: String): Collection = functions[name] ?: emptyList() + + fun getAggregations(name: String): Collection = aggregations[name] ?: emptyList() + + private val functions = listOf( Fn_ABS__INT8__INT8, Fn_ABS__INT16__INT16, Fn_ABS__INT32__INT32, @@ -404,10 +413,10 @@ internal object SqlBuiltins { Fn_SIZE__LIST__INT32, Fn_SIZE__SEXP__INT32, Fn_SIZE__STRUCT__INT32 - ) + ).groupBy { it.getName() } @JvmStatic - val aggregations: List = listOf( + private val aggregations: Map> = listOf( Agg_ANY__BOOL__BOOL, Agg_AVG__INT8__INT8, Agg_AVG__INT16__INT16, @@ -451,5 +460,5 @@ internal object SqlBuiltins { Agg_SUM__FLOAT64__FLOAT64, Agg_SUM__ANY__ANY, Agg_GROUP_AS__ANY__ANY - ) + ).groupBy { it.getName() } } diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Function.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Function.kt index 9ae7b2826c..a0f20fb997 100644 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Function.kt +++ b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/Function.kt @@ -24,7 +24,12 @@ public interface Function : Routine { /** * SQL NULL CALL -> RETURNS NULL ON NULL INPUT */ - public fun isNullCall(): Boolean = true + public fun isNullCall(): Boolean = signature.isNullCall + + /** + * TODO REMOVE ME + */ + public fun isMissingCall(): Boolean = signature.isMissingCall /** * TODO REPLACE ME WITH `getInstance(args: Array)` which returns an invocable instance of this function. diff --git a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/SqlFnProvider.kt b/partiql-spi/src/main/kotlin/org/partiql/spi/fn/SqlFnProvider.kt deleted file mode 100644 index 243ac768b1..0000000000 --- a/partiql-spi/src/main/kotlin/org/partiql/spi/fn/SqlFnProvider.kt +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright Amazon.com, Inc. or its affiliates. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at: - * - * http://aws.amazon.com/apache2.0/ - * - * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific - * language governing permissions and limitations under the License. - */ - -package org.partiql.spi.fn - -/** - * TODO !! TEMPORARY AS FUNCTIONS ARE MOVED TO [Catalog] APIs. - */ -public object SqlFnProvider { - - private val fnNameIndex = SqlBuiltins.builtins.groupBy { it.signature.name } - private val fnSpecIndex = SqlBuiltins.builtins.associateBy { it.signature.specific } - private val aggNameIndex = SqlBuiltins.aggregations.groupBy { it.signature.name } - private val aggSpecIndex = SqlBuiltins.aggregations.associateBy { it.signature.specific } - - internal fun lookupFn(name: String): List = fnNameIndex[name] ?: emptyList() - internal fun lookupAgg(name: String): List = aggNameIndex[name] ?: emptyList() - - // - // TEMPORARY PUBLIC EVALUATOR APIS - // - public fun getFn(specific: String): Function? = fnSpecIndex[specific] - public fun getAgg(specific: String): Aggregation? = aggSpecIndex[specific] -}