@@ -146,52 +146,6 @@ object QueryPlanSerde extends Logging with CometExprShim {
146
146
false
147
147
}
148
148
149
- // def convertArrayToProtoLiteral(array: Seq[Any], arrayType: ArrayType): Literal = {
150
- // val elementType = arrayType.elementType
151
- // val listLiteralBuilder = ListLiteral.newBuilder()
152
- //
153
- // elementType match {
154
- // case BooleanType =>
155
- // listLiteralBuilder.addAllBooleanValues(array.map(_.asInstanceOf[Boolean]).asJava)
156
- //
157
- // case ByteType =>
158
- // listLiteralBuilder.addAllByteValues(array.map(_.asInstanceOf[Byte].toInt).asJava)
159
- //
160
- // case ShortType =>
161
- // listLiteralBuilder.addAllShortValues(array.map(_.asInstanceOf[Short].toInt).asJava)
162
- //
163
- // case IntegerType =>
164
- // listLiteralBuilder.addAllIntValues(array.map(_.asInstanceOf[Int]).asJava)
165
- //
166
- // case LongType =>
167
- // listLiteralBuilder.addAllLongValues(array.map(_.asInstanceOf[Long]).asJava)
168
- //
169
- // case FloatType =>
170
- // listLiteralBuilder.addAllFloatValues(array.map(_.asInstanceOf[Float]).asJava)
171
- //
172
- // case DoubleType =>
173
- // listLiteralBuilder.addAllDoubleValues(array.map(_.asInstanceOf[Double]).asJava)
174
- //
175
- // case StringType =>
176
- // listLiteralBuilder.addAllStringValues(array.map(_.asInstanceOf[String]).asJava)
177
- //
178
- // case BinaryType =>
179
- // listLiteralBuilder.addAllBytesValues
180
- // (array.map(x => com.google.protobuf
181
- // .ByteString.copyFrom(x.asInstanceOf[Array[Byte]])).asJava)
182
- //
183
- // case nested: ArrayType =>
184
- // val nestedListLiterals = array.map {
185
- // case null => ListLiteral.newBuilder().build() // or handle nulls appropriately
186
- // case seq: Seq[_] => convertArrayToProtoLiteral(seq, nested).getListVal
187
- // }
188
- // listLiteralBuilder.addAllListValues(nestedListLiterals.asJava)
189
- //
190
- // case _ =>
191
- // throw new UnsupportedOperationException(s"Unsupported element type: $elementType")
192
- // }
193
- // }
194
-
195
149
/**
196
150
* Serializes Spark datatype to protobuf. Note that, a datatype can be serialized by this method
197
151
* doesn't mean it is supported by Comet native execution, i.e., `supportedDataType` may return
@@ -889,7 +843,13 @@ object QueryPlanSerde extends Logging with CometExprShim {
889
843
binding,
890
844
(builder, binaryExpr) => builder.setLtEq(binaryExpr))
891
845
892
- case Literal (value, dataType) if supportedDataType(dataType, allowComplex = true ) =>
846
+ case Literal (value, dataType)
847
+ if supportedDataType(
848
+ dataType,
849
+ allowComplex = value == null || Seq (
850
+ CometConf .SCAN_NATIVE_ICEBERG_COMPAT ,
851
+ CometConf .SCAN_NATIVE_DATAFUSION ).contains(
852
+ CometConf .COMET_NATIVE_SCAN_IMPL .get())) =>
893
853
val exprBuilder = ExprOuterClass .Literal .newBuilder()
894
854
895
855
if (value == null ) {
0 commit comments