petern48 commented on code in PR #2026: URL: https://github.com/apache/datafusion-comet/pull/2026#discussion_r2202868497
########## spark/src/main/scala/org/apache/comet/serde/QueryPlanSerde.scala: ########## @@ -1790,92 +1793,6 @@ object QueryPlanSerde extends Logging with CometExprShim { .setGetStructField(getStructFieldBuilder) .build() } - - case GetArrayItem(child, ordinal, failOnError) => - val childExpr = exprToProtoInternal(child, inputs, binding) - val ordinalExpr = exprToProtoInternal(ordinal, inputs, binding) - - if (childExpr.isDefined && ordinalExpr.isDefined) { - val listExtractBuilder = ExprOuterClass.ListExtract - .newBuilder() - .setChild(childExpr.get) - .setOrdinal(ordinalExpr.get) - .setOneBased(false) - .setFailOnError(failOnError) - - Some( - ExprOuterClass.Expr - .newBuilder() - .setListExtract(listExtractBuilder) - .build()) - } else { - withInfo(expr, "unsupported arguments for GetArrayItem", child, ordinal) - None - } - - case ElementAt(child, ordinal, defaultValue, failOnError) - if child.dataType.isInstanceOf[ArrayType] => - val childExpr = exprToProtoInternal(child, inputs, binding) - val ordinalExpr = exprToProtoInternal(ordinal, inputs, binding) - val defaultExpr = defaultValue.flatMap(exprToProtoInternal(_, inputs, binding)) - - if (childExpr.isDefined && ordinalExpr.isDefined && - defaultExpr.isDefined == defaultValue.isDefined) { - val arrayExtractBuilder = ExprOuterClass.ListExtract - .newBuilder() - .setChild(childExpr.get) - .setOrdinal(ordinalExpr.get) - .setOneBased(true) - .setFailOnError(failOnError) - - defaultExpr.foreach(arrayExtractBuilder.setDefaultValue(_)) - - Some( - ExprOuterClass.Expr - .newBuilder() - .setListExtract(arrayExtractBuilder) - .build()) - } else { - withInfo(expr, "unsupported arguments for ElementAt", child, ordinal) - None - } - - case GetArrayStructFields(child, _, ordinal, _, _) => - val childExpr = exprToProtoInternal(child, inputs, binding) - - if (childExpr.isDefined) { - val arrayStructFieldsBuilder = ExprOuterClass.GetArrayStructFields - .newBuilder() - .setChild(childExpr.get) - .setOrdinal(ordinal) - - Some( - ExprOuterClass.Expr - .newBuilder() - .setGetArrayStructFields(arrayStructFieldsBuilder) - .build()) - } else { - withInfo(expr, "unsupported arguments for GetArrayStructFields", child) - None - } - case _ @ArrayFilter(_, func) if func.children.head.isInstanceOf[IsNotNull] => - convert(CometArrayCompact) - case _: ArrayExcept => - convert(CometArrayExcept) - case Rand(child, _) => - createUnaryExpr( - expr, - child, - inputs, - binding, - (builder, unaryExpr) => builder.setRand(unaryExpr)) - case expr => - QueryPlanSerde.exprSerdeMap.get(expr.getClass) match { - case Some(handler) => convert(handler) - case _ => - withInfo(expr, s"${expr.prettyName} is not supported", expr.children: _*) - None - } Review Comment: Yes, you're definitely right. Sorry, I think I (incorrectly) assumed I was working at the bottom of the list and deleted those without realizing. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For additional commands, e-mail: github-h...@datafusion.apache.org