@@ -121,52 +121,6 @@ object QueryPlanSerde extends Logging with CometExprShim {
121
121
false
122
122
}
123
123
124
- // def convertArrayToProtoLiteral(array: Seq[Any], arrayType: ArrayType): Literal = {
125
- // val elementType = arrayType.elementType
126
- // val listLiteralBuilder = ListLiteral.newBuilder()
127
- //
128
- // elementType match {
129
- // case BooleanType =>
130
- // listLiteralBuilder.addAllBooleanValues(array.map(_.asInstanceOf[Boolean]).asJava)
131
- //
132
- // case ByteType =>
133
- // listLiteralBuilder.addAllByteValues(array.map(_.asInstanceOf[Byte].toInt).asJava)
134
- //
135
- // case ShortType =>
136
- // listLiteralBuilder.addAllShortValues(array.map(_.asInstanceOf[Short].toInt).asJava)
137
- //
138
- // case IntegerType =>
139
- // listLiteralBuilder.addAllIntValues(array.map(_.asInstanceOf[Int]).asJava)
140
- //
141
- // case LongType =>
142
- // listLiteralBuilder.addAllLongValues(array.map(_.asInstanceOf[Long]).asJava)
143
- //
144
- // case FloatType =>
145
- // listLiteralBuilder.addAllFloatValues(array.map(_.asInstanceOf[Float]).asJava)
146
- //
147
- // case DoubleType =>
148
- // listLiteralBuilder.addAllDoubleValues(array.map(_.asInstanceOf[Double]).asJava)
149
- //
150
- // case StringType =>
151
- // listLiteralBuilder.addAllStringValues(array.map(_.asInstanceOf[String]).asJava)
152
- //
153
- // case BinaryType =>
154
- // listLiteralBuilder.addAllBytesValues
155
- // (array.map(x => com.google.protobuf
156
- // .ByteString.copyFrom(x.asInstanceOf[Array[Byte]])).asJava)
157
- //
158
- // case nested: ArrayType =>
159
- // val nestedListLiterals = array.map {
160
- // case null => ListLiteral.newBuilder().build() // or handle nulls appropriately
161
- // case seq: Seq[_] => convertArrayToProtoLiteral(seq, nested).getListVal
162
- // }
163
- // listLiteralBuilder.addAllListValues(nestedListLiterals.asJava)
164
- //
165
- // case _ =>
166
- // throw new UnsupportedOperationException(s"Unsupported element type: $elementType")
167
- // }
168
- // }
169
-
170
124
/**
171
125
* Serializes Spark datatype to protobuf. Note that, a datatype can be serialized by this method
172
126
* doesn't mean it is supported by Comet native execution, i.e., `supportedDataType` may return
@@ -864,7 +818,13 @@ object QueryPlanSerde extends Logging with CometExprShim {
864
818
binding,
865
819
(builder, binaryExpr) => builder.setLtEq(binaryExpr))
866
820
867
- case Literal (value, dataType) if supportedDataType(dataType, allowComplex = true ) =>
821
+ case Literal (value, dataType)
822
+ if supportedDataType(
823
+ dataType,
824
+ allowComplex = value == null || Seq (
825
+ CometConf .SCAN_NATIVE_ICEBERG_COMPAT ,
826
+ CometConf .SCAN_NATIVE_DATAFUSION ).contains(
827
+ CometConf .COMET_NATIVE_SCAN_IMPL .get())) =>
868
828
val exprBuilder = ExprOuterClass .Literal .newBuilder()
869
829
870
830
if (value == null ) {
0 commit comments