From a6ea75e83eae54c750003a2c842a80e686f63e7f Mon Sep 17 00:00:00 2001 From: Wenqi Hu Date: Thu, 30 Jan 2025 22:49:54 -0800 Subject: [PATCH] [source volcano] Allow meta field to be queried in SelectQuerySpec --- .../io/airbyte/cdk/read/SelectQuerier.kt | 5 ++-- .../kotlin/io/airbyte/cdk/read/SelectQuery.kt | 4 +-- .../io/airbyte/cdk/read/SelectQuerySpec.kt | 28 +++++++++---------- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/airbyte-cdk/bulk/toolkits/extract-jdbc/src/main/kotlin/io/airbyte/cdk/read/SelectQuerier.kt b/airbyte-cdk/bulk/toolkits/extract-jdbc/src/main/kotlin/io/airbyte/cdk/read/SelectQuerier.kt index c5bf58dda78d9..1e627459660c6 100644 --- a/airbyte-cdk/bulk/toolkits/extract-jdbc/src/main/kotlin/io/airbyte/cdk/read/SelectQuerier.kt +++ b/airbyte-cdk/bulk/toolkits/extract-jdbc/src/main/kotlin/io/airbyte/cdk/read/SelectQuerier.kt @@ -4,6 +4,7 @@ package io.airbyte.cdk.read import com.fasterxml.jackson.databind.JsonNode import com.fasterxml.jackson.databind.node.ObjectNode import io.airbyte.cdk.discover.Field +import io.airbyte.cdk.discover.FieldOrMetaField import io.airbyte.cdk.jdbc.JdbcConnectionFactory import io.airbyte.cdk.jdbc.JdbcFieldType import io.airbyte.cdk.util.Jsons @@ -39,7 +40,7 @@ interface SelectQuerier { interface ResultRow { val data: ObjectNode - val changes: Map + val changes: Map } } @@ -55,7 +56,7 @@ class JdbcSelectQuerier( data class ResultRow( override var data: ObjectNode = Jsons.objectNode(), - override var changes: MutableMap = mutableMapOf(), + override var changes: MutableMap = mutableMapOf(), ) : SelectQuerier.ResultRow class Result( diff --git a/airbyte-cdk/bulk/toolkits/extract-jdbc/src/main/kotlin/io/airbyte/cdk/read/SelectQuery.kt b/airbyte-cdk/bulk/toolkits/extract-jdbc/src/main/kotlin/io/airbyte/cdk/read/SelectQuery.kt index aa6c921886166..3d5dbba06bc7c 100644 --- a/airbyte-cdk/bulk/toolkits/extract-jdbc/src/main/kotlin/io/airbyte/cdk/read/SelectQuery.kt +++ b/airbyte-cdk/bulk/toolkits/extract-jdbc/src/main/kotlin/io/airbyte/cdk/read/SelectQuery.kt @@ -2,7 +2,7 @@ package io.airbyte.cdk.read import com.fasterxml.jackson.databind.JsonNode -import io.airbyte.cdk.discover.Field +import io.airbyte.cdk.discover.FieldOrMetaField import io.airbyte.cdk.jdbc.LosslessJdbcFieldType /** @@ -11,7 +11,7 @@ import io.airbyte.cdk.jdbc.LosslessJdbcFieldType */ data class SelectQuery( val sql: String, - val columns: List, + val columns: List, val bindings: List, ) { data class Binding( diff --git a/airbyte-cdk/bulk/toolkits/extract-jdbc/src/main/kotlin/io/airbyte/cdk/read/SelectQuerySpec.kt b/airbyte-cdk/bulk/toolkits/extract-jdbc/src/main/kotlin/io/airbyte/cdk/read/SelectQuerySpec.kt index 86498d4388e1d..dd61da0601260 100644 --- a/airbyte-cdk/bulk/toolkits/extract-jdbc/src/main/kotlin/io/airbyte/cdk/read/SelectQuerySpec.kt +++ b/airbyte-cdk/bulk/toolkits/extract-jdbc/src/main/kotlin/io/airbyte/cdk/read/SelectQuerySpec.kt @@ -2,7 +2,7 @@ package io.airbyte.cdk.read import com.fasterxml.jackson.databind.JsonNode -import io.airbyte.cdk.discover.Field +import io.airbyte.cdk.discover.FieldOrMetaField import java.math.BigDecimal /** @@ -21,19 +21,19 @@ data class SelectQuerySpec( ) sealed interface SelectNode { - val columns: List + val columns: List } data class SelectColumns( - override val columns: List, + override val columns: List, ) : SelectNode { - constructor(vararg columns: Field) : this(columns.toList()) + constructor(vararg columns: FieldOrMetaField) : this(columns.toList()) } data class SelectColumnMaxValue( - val column: Field, + val column: FieldOrMetaField, ) : SelectNode { - override val columns: List + override val columns: List get() = listOf(column) } @@ -85,41 +85,41 @@ data class Or( } sealed interface WhereClauseLeafNode : WhereClauseNode { - val column: Field + val column: FieldOrMetaField val bindingValue: JsonNode } data class GreaterOrEqual( - override val column: Field, + override val column: FieldOrMetaField, override val bindingValue: JsonNode, ) : WhereClauseLeafNode data class Greater( - override val column: Field, + override val column: FieldOrMetaField, override val bindingValue: JsonNode, ) : WhereClauseLeafNode data class LesserOrEqual( - override val column: Field, + override val column: FieldOrMetaField, override val bindingValue: JsonNode, ) : WhereClauseLeafNode data class Lesser( - override val column: Field, + override val column: FieldOrMetaField, override val bindingValue: JsonNode, ) : WhereClauseLeafNode data class Equal( - override val column: Field, + override val column: FieldOrMetaField, override val bindingValue: JsonNode, ) : WhereClauseLeafNode sealed interface OrderByNode data class OrderBy( - val columns: List, + val columns: List, ) : OrderByNode { - constructor(vararg columns: Field) : this(columns.toList()) + constructor(vararg columns: FieldOrMetaField) : this(columns.toList()) } data object NoOrderBy : OrderByNode