Skip to content

Commit 8662f3b

Browse files
authored
Merge pull request #1272 from partiql/simplify-dynamic-fns
Removes the dynamic function definition
2 parents c23ca8c + 17ed56e commit 8662f3b

File tree

9 files changed

+5
-61
lines changed

9 files changed

+5
-61
lines changed

partiql-plan/src/main/resources/partiql_plan.ion

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,9 @@ global::{
2121

2222
// Functions
2323

24-
fn::[
25-
static::{
26-
signature: scalar_signature,
27-
},
28-
dynamic::{
29-
signatures: list::[scalar_signature],
30-
}
31-
]
24+
fn::{
25+
signature: scalar_signature,
26+
}
3227

3328
agg::{
3429
signature: aggregation_signature,

partiql-planner/src/main/kotlin/org/partiql/planner/internal/ir/Nodes.kt

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ package org.partiql.planner.internal.ir
44

55
import org.partiql.planner.internal.ir.builder.AggResolvedBuilder
66
import org.partiql.planner.internal.ir.builder.AggUnresolvedBuilder
7-
import org.partiql.planner.internal.ir.builder.FnDynamicBuilder
87
import org.partiql.planner.internal.ir.builder.FnResolvedBuilder
98
import org.partiql.planner.internal.ir.builder.FnUnresolvedBuilder
109
import org.partiql.planner.internal.ir.builder.GlobalBuilder
@@ -126,7 +125,6 @@ internal sealed class Fn : PlanNode() {
126125
internal override fun <R, C> accept(visitor: PlanVisitor<R, C>, ctx: C): R = when (this) {
127126
is Resolved -> visitor.visitFnResolved(this, ctx)
128127
is Unresolved -> visitor.visitFnUnresolved(this, ctx)
129-
is Dynamic -> visitor.visitFnDynamic(this, ctx)
130128
}
131129

132130
internal data class Resolved(
@@ -164,21 +162,6 @@ internal sealed class Fn : PlanNode() {
164162
internal fun builder(): FnUnresolvedBuilder = FnUnresolvedBuilder()
165163
}
166164
}
167-
168-
internal data class Dynamic(
169-
@JvmField
170-
internal val signatures: List<FunctionSignature.Scalar>,
171-
) : Fn() {
172-
internal override val children: List<PlanNode> = emptyList()
173-
174-
internal override fun <R, C> accept(visitor: PlanVisitor<R, C>, ctx: C): R =
175-
visitor.visitFnDynamic(this, ctx)
176-
177-
internal companion object {
178-
@JvmStatic
179-
internal fun builder(): FnDynamicBuilder = FnDynamicBuilder()
180-
}
181-
}
182165
}
183166

184167
internal sealed class Agg : PlanNode() {

partiql-planner/src/main/kotlin/org/partiql/planner/internal/ir/Plan.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ internal fun fnResolved(signature: FunctionSignature.Scalar): Fn.Resolved = Fn.R
2121
internal fun fnUnresolved(identifier: Identifier, isHidden: Boolean): Fn.Unresolved =
2222
Fn.Unresolved(identifier, isHidden)
2323

24-
internal fun fnDynamic(signatures: List<FunctionSignature.Scalar>): Fn.Dynamic =
25-
Fn.Dynamic(signatures)
26-
2724
internal fun aggResolved(signature: FunctionSignature.Aggregation): Agg.Resolved =
2825
Agg.Resolved(signature)
2926

@@ -39,6 +36,7 @@ internal fun identifierQualified(root: Identifier.Symbol, steps: List<Identifier
3936

4037
internal fun rex(type: StaticType, op: Rex.Op): Rex = Rex(type, op)
4138

39+
@OptIn(PartiQLValueExperimental::class)
4240
internal fun rexOpLit(`value`: PartiQLValue): Rex.Op.Lit = Rex.Op.Lit(value)
4341

4442
internal fun rexOpVarResolved(ref: Int): Rex.Op.Var.Resolved = Rex.Op.Var.Resolved(ref)

partiql-planner/src/main/kotlin/org/partiql/planner/internal/ir/builder/PlanBuilder.kt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,6 @@ internal class PlanBuilder {
6060
return builder.build()
6161
}
6262

63-
internal fun fnDynamic(
64-
signatures: MutableList<FunctionSignature.Scalar> = mutableListOf(),
65-
block: FnDynamicBuilder.() -> Unit = {},
66-
): Fn.Dynamic {
67-
val builder = FnDynamicBuilder(signatures)
68-
builder.block()
69-
return builder.build()
70-
}
71-
7263
internal fun aggResolved(
7364
signature: FunctionSignature.Aggregation? = null,
7465
block: AggResolvedBuilder.() -> Unit = {},

partiql-planner/src/main/kotlin/org/partiql/planner/internal/ir/builder/PlanBuilders.kt

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -84,17 +84,6 @@ internal class FnUnresolvedBuilder(
8484
)
8585
}
8686

87-
internal class FnDynamicBuilder(
88-
internal var signatures: MutableList<FunctionSignature.Scalar> = mutableListOf(),
89-
) {
90-
internal fun signatures(signatures: MutableList<FunctionSignature.Scalar>): FnDynamicBuilder =
91-
this.apply {
92-
this.signatures = signatures
93-
}
94-
95-
internal fun build(): Fn.Dynamic = Fn.Dynamic(signatures = signatures)
96-
}
97-
9887
internal class AggResolvedBuilder(
9988
internal var signature: FunctionSignature.Aggregation? = null,
10089
) {

partiql-planner/src/main/kotlin/org/partiql/planner/internal/ir/util/PlanRewriter.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,6 @@ internal abstract class PlanRewriter<C> : PlanBaseVisitor<PlanNode, C>() {
121121
}
122122
}
123123

124-
override fun visitFnDynamic(node: Fn.Dynamic, ctx: C): PlanNode {
125-
val signatures = node.signatures
126-
return node
127-
}
128-
129124
override fun visitAggResolved(node: Agg.Resolved, ctx: C): PlanNode {
130125
val signature = node.signature
131126
return node

partiql-planner/src/main/kotlin/org/partiql/planner/internal/ir/visitor/PlanBaseVisitor.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,12 @@ internal abstract class PlanBaseVisitor<R, C> : PlanVisitor<R, C> {
2323
override fun visitFn(node: Fn, ctx: C): R = when (node) {
2424
is Fn.Resolved -> visitFnResolved(node, ctx)
2525
is Fn.Unresolved -> visitFnUnresolved(node, ctx)
26-
is Fn.Dynamic -> visitFnDynamic(node, ctx)
2726
}
2827

2928
override fun visitFnResolved(node: Fn.Resolved, ctx: C): R = defaultVisit(node, ctx)
3029

3130
override fun visitFnUnresolved(node: Fn.Unresolved, ctx: C): R = defaultVisit(node, ctx)
3231

33-
override fun visitFnDynamic(node: Fn.Dynamic, ctx: C): R = defaultVisit(node, ctx)
34-
3532
override fun visitAgg(node: Agg, ctx: C): R = when (node) {
3633
is Agg.Resolved -> visitAggResolved(node, ctx)
3734
is Agg.Unresolved -> visitAggUnresolved(node, ctx)

partiql-planner/src/main/kotlin/org/partiql/planner/internal/ir/visitor/PlanVisitor.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ internal interface PlanVisitor<R, C> {
2626

2727
fun visitFnUnresolved(node: Fn.Unresolved, ctx: C): R
2828

29-
fun visitFnDynamic(node: Fn.Dynamic, ctx: C): R
30-
3129
fun visitAgg(node: Agg, ctx: C): R
3230

3331
fun visitAggResolved(node: Agg.Resolved, ctx: C): R

partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/PlanTransform.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,12 @@ internal object PlanTransform : PlanBaseVisitor<PlanNode, ProblemCallback>() {
4040
return org.partiql.plan.global(path, type)
4141
}
4242

43-
override fun visitFnResolved(node: Fn.Resolved, ctx: ProblemCallback) = org.partiql.plan.fnStatic(node.signature)
43+
override fun visitFnResolved(node: Fn.Resolved, ctx: ProblemCallback) = org.partiql.plan.fn(node.signature)
4444

4545
override fun visitFnUnresolved(node: Fn.Unresolved, ctx: ProblemCallback): org.partiql.plan.Rex.Op {
4646
return org.partiql.plan.Rex.Op.Err("Unresolved function")
4747
}
4848

49-
override fun visitFnDynamic(node: Fn.Dynamic, ctx: ProblemCallback) = org.partiql.plan.fnDynamic(node.signatures)
50-
5149
override fun visitAgg(node: Agg, ctx: ProblemCallback) = super.visitAgg(node, ctx) as org.partiql.plan.Agg
5250

5351
override fun visitAggResolved(node: Agg.Resolved, ctx: ProblemCallback) = org.partiql.plan.Agg(node.signature)

0 commit comments

Comments
 (0)