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