Skip to content

Commit d37369e

Browse files
authored
Generate internalized planning IR (#1339)
1 parent 05c591c commit d37369e

File tree

13 files changed

+639
-8725
lines changed

13 files changed

+639
-8725
lines changed

partiql-planner/build.gradle.kts

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,54 @@ publish {
7777
name = "PartiQL Planner"
7878
description = "PartiQL's Experimental Planner."
7979
}
80+
81+
// Generate internal IR
82+
tasks.register<Exec>("codegen") {
83+
dependsOn(":lib:sprout:install")
84+
workingDir(projectDir)
85+
commandLine(
86+
"../lib/sprout/build/install/sprout/bin/sprout",
87+
"generate",
88+
"kotlin",
89+
"-o", "$buildDir/tmp",
90+
"-p", "org.partiql.planner.internal.ir",
91+
"-u", "Plan",
92+
"--poems", "factory",
93+
"--poems", "visitor",
94+
"--poems", "builder",
95+
"--poems", "util",
96+
"--opt-in", "org.partiql.value.PartiQLValueExperimental",
97+
"./src/main/resources/partiql_plan_internal.ion"
98+
)
99+
}
100+
101+
// Copy generated utilities to generated-src
102+
tasks.register<Copy>("copyUtils") {
103+
includeEmptyDirs = false
104+
dependsOn("codegen")
105+
filter { it.replace(Regex("public (?!(override|(fun visit)))"), "internal ") }
106+
from("$buildDir/tmp")
107+
exclude("**/Nodes.kt")
108+
into("$buildDir/generated-src")
109+
}
110+
111+
// Copy generated Nodes.kt to src
112+
//
113+
// !! IMPORTANT !! — only run manually, as this will overwrite the existing ir/Nodes.kt.
114+
//
115+
tasks.register<Copy>("copyNodes") {
116+
includeEmptyDirs = false
117+
dependsOn("codegen")
118+
filter { it.replace(Regex("public (?!(override|(fun visit)))"), "internal ") }
119+
from("$buildDir/tmp")
120+
include("**/Nodes.kt")
121+
into("src/main/kotlin")
122+
}
123+
124+
tasks.register("generate") {
125+
dependsOn("codegen", "copyUtils")
126+
}
127+
128+
tasks.compileKotlin {
129+
dependsOn("generate")
130+
}

partiql-planner/src/main/kotlin/org/partiql/planner/PartiQLPlannerDefault.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import org.partiql.ast.Statement
44
import org.partiql.ast.normalize.normalize
55
import org.partiql.errors.ProblemCallback
66
import org.partiql.planner.internal.Env
7-
import org.partiql.planner.internal.ir.PartiQLVersion
87
import org.partiql.planner.internal.transforms.AstToPlan
98
import org.partiql.planner.internal.transforms.PlanTransform
109
import org.partiql.planner.internal.typer.PlanTyper
@@ -34,7 +33,6 @@ internal class PartiQLPlannerDefault(
3433
// 3. Resolve variables
3534
val typer = PlanTyper(env, onProblem)
3635
val internal = org.partiql.planner.internal.ir.PartiQLPlan(
37-
version = PartiQLVersion.VERSION_0_1,
3836
catalogs = env.catalogs,
3937
statement = typer.resolve(root),
4038
)

0 commit comments

Comments
 (0)