Hisoka-X commented on code in PR #42398: URL: https://github.com/apache/spark/pull/42398#discussion_r1369459076
########## sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/aggregate/collect.scala: ########## @@ -245,3 +249,98 @@ case class CollectTopK( override def withNewInputAggBufferOffset(newInputAggBufferOffset: Int): CollectTopK = copy(inputAggBufferOffset = newInputAggBufferOffset) } + +@ExpressionDescription( + usage = "_FUNC_(expr) - Returns the concatenated input values," + + " separated by the delimiter string.", + examples = """ + Examples: + > SELECT _FUNC_(col) FROM VALUES ('a'), ('b'), ('c') AS tab(col); + a,b,c + > SELECT _FUNC_(col) FROM VALUES (NULL), ('a'), ('b') AS tab(col); + a,b + > SELECT _FUNC_(col) FROM VALUES ('a'), ('a') AS tab(col); + a,a + > SELECT _FUNC_(DISTINCT col) FROM VALUES ('a'), ('a'), ('b') AS tab(col); + a,b + > SELECT _FUNC_(col, '|') FROM VALUES ('a'), ('b') AS tab(col); + a|b + > SELECT _FUNC_(col) FROM VALUES (NULL), (NULL) AS tab(col); + "" + """, + group = "agg_funcs", + since = "4.0.0") +case class ListAgg( + child: Expression, + delimiter: Expression = Literal.create(",", StringType), + orderExpression: Expression, + reverse: Boolean = false, + mutableAggBufferOffset: Int = 0, + inputAggBufferOffset: Int = 0) extends Collect[mutable.ArrayBuffer[Any]] Review Comment: It's a bit difficult for me to understand. The values of the two expressions should be bound before sorting. I don't quite understand the meaning of separate definitions and how to collect the corresponding values separately. Unless two `CollectList` are defined in `ListAgg`. Could you provide some demo? Please. -- 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: reviews-unsubscr...@spark.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org