Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Moves shared dependencies to SPI #1531

Merged
merged 1 commit into from
Aug 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions partiql-ast/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ dependencies {
api(Deps.pigRuntime)
api(Deps.ionElement)
api(project(":partiql-types"))
// TODO REMOVE ME ONCE PartiQLValue IS REMOVED
// THE AST NEEDS ITS OWN "VALUE" REPRESENTATION
api(project(":partiql-spi"))
}

tasks.shadowJar {
Expand Down
2 changes: 0 additions & 2 deletions partiql-cli/src/main/kotlin/org/partiql/cli/Main.kt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import org.partiql.eval.PartiQLResult
import org.partiql.plugins.memory.MemoryCatalog
import org.partiql.plugins.memory.MemoryConnector
import org.partiql.spi.connector.Connector
import org.partiql.spi.connector.sql.info.InfoSchema
import org.partiql.types.StaticType
import org.partiql.value.PartiQLValueExperimental
import org.partiql.value.io.PartiQLValueTextWriter
Expand Down Expand Up @@ -226,7 +225,6 @@ internal class MainCommand : Runnable {
}
val catalog = MemoryCatalog.builder()
.name("default")
.info(InfoSchema.ext())
.define(
name = "stdin",
type = StaticType.ANY,
Expand Down
45 changes: 0 additions & 45 deletions partiql-eval/api/partiql-eval.api
Original file line number Diff line number Diff line change
Expand Up @@ -63,48 +63,3 @@ public abstract interface class org/partiql/eval/PartiQLStatement {
public abstract interface class org/partiql/eval/PartiQLStatement$Query : org/partiql/eval/PartiQLStatement {
}

public abstract interface class org/partiql/eval/value/Datum : java/lang/Iterable {
public static fun bagValue (Ljava/lang/Iterable;)Lorg/partiql/eval/value/Datum;
public static fun boolValue (Z)Lorg/partiql/eval/value/Datum;
public fun get (Ljava/lang/String;)Lorg/partiql/eval/value/Datum;
public fun getBigDecimal ()Ljava/math/BigDecimal;
public fun getBigInteger ()Ljava/math/BigInteger;
public fun getBoolean ()Z
public fun getByte ()B
public fun getBytes ()[B
public fun getDate ()Lorg/partiql/value/datetime/Date;
public fun getDouble ()D
public fun getFields ()Ljava/util/Iterator;
public fun getFloat ()F
public fun getInsensitive (Ljava/lang/String;)Lorg/partiql/eval/value/Datum;
public fun getInt ()I
public fun getInterval ()J
public fun getLong ()J
public fun getShort ()S
public fun getString ()Ljava/lang/String;
public fun getTime ()Lorg/partiql/value/datetime/Time;
public fun getTimestamp ()Lorg/partiql/value/datetime/Timestamp;
public abstract fun getType ()Lorg/partiql/types/PType;
public static fun int32Value (I)Lorg/partiql/eval/value/Datum;
public static fun int64Value (J)Lorg/partiql/eval/value/Datum;
public fun isMissing ()Z
public fun isNull ()Z
public fun iterator ()Ljava/util/Iterator;
public static fun listValue (Ljava/lang/Iterable;)Lorg/partiql/eval/value/Datum;
public static fun missingValue ()Lorg/partiql/eval/value/Datum;
public static fun missingValue (Lorg/partiql/types/PType;)Lorg/partiql/eval/value/Datum;
public static fun nullValue ()Lorg/partiql/eval/value/Datum;
public static fun nullValue (Lorg/partiql/types/PType;)Lorg/partiql/eval/value/Datum;
public static fun of (Lorg/partiql/value/PartiQLValue;)Lorg/partiql/eval/value/Datum;
public static fun sexpValue (Ljava/lang/Iterable;)Lorg/partiql/eval/value/Datum;
public static fun stringValue (Ljava/lang/String;)Lorg/partiql/eval/value/Datum;
public static fun structValue (Ljava/lang/Iterable;)Lorg/partiql/eval/value/Datum;
public fun toPartiQLValue ()Lorg/partiql/value/PartiQLValue;
}

public abstract interface class org/partiql/eval/value/Field {
public abstract fun getName ()Ljava/lang/String;
public abstract fun getValue ()Lorg/partiql/eval/value/Datum;
public static fun of (Ljava/lang/String;Lorg/partiql/eval/value/Datum;)Lorg/partiql/eval/value/Field;
}

9 changes: 0 additions & 9 deletions partiql-eval/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,6 @@ components.withType(AdhocComponentWithVariants::class.java).forEach { c ->
}
}

// Need to add this as we have both Java and Kotlin sources. Dokka already handles multi-language projects. If
// Javadoc is enabled, we end up overwriting index.html (causing compilation errors).
tasks.withType<Javadoc>() {
enabled = false
}
tasks.withType<Jar>() {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}

publish {
artifactId = "partiql-eval"
name = "PartiQL Lang Kotlin Evaluator"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ internal object ValueUtility {

@OptIn(PartiQLValueExperimental::class)
fun Datum.check(type: PartiQLValueType): Datum {
return this.check(PType.fromPartiQLValueType(type))
return this.check(type.toPType())
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ internal class ExprCast(val arg: Operator.Expr, val cast: Ref.Cast) : Operator.E
val argDatum = arg.eval(env)
val arg = argDatum.toPartiQLValue()
try {
val partiqlValue = when (PType.fromPartiQLValueType(arg.type).kind) {
val partiqlValue = when (arg.type.toPType().kind) {
PType.Kind.DYNAMIC -> TODO("Not Possible")
PType.Kind.BOOL -> castFromBool(arg as BoolValue, cast.target)
PType.Kind.TINYINT -> castFromNumeric(arg as Int8Value, cast.target)
Expand Down
1 change: 1 addition & 0 deletions partiql-plan/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ plugins {
}

dependencies {
api(project(":partiql-spi"))
api(project(":partiql-types"))
implementation(Deps.ionElement)
implementation(Deps.kotlinReflect)
Expand Down
Loading
Loading