Github user caneGuy commented on a diff in the pull request:

    https://github.com/apache/spark/pull/19764#discussion_r151375208
  
    --- Diff: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/GenerateOrdering.scala
 ---
    @@ -193,14 +193,30 @@ object GenerateOrdering extends 
CodeGenerator[Seq[SortOrder], Ordering[InternalR
     /**
      * A lazily generated row ordering comparator.
      */
    -class LazilyGeneratedOrdering(val ordering: Seq[SortOrder])
    +class LazilyGeneratedOrdering(
    +    val ordering: Seq[SortOrder], secondOrdering: => Seq[SortOrder] = 
Seq.empty)
       extends Ordering[InternalRow] with KryoSerializable {
     
       def this(ordering: Seq[SortOrder], inputSchema: Seq[Attribute]) =
         this(ordering.map(BindReferences.bindReference(_, inputSchema)))
     
       @transient
    -  private[this] var generatedOrdering = GenerateOrdering.generate(ordering)
    +  private[this] var generatedOrdering = {
    +    var generatedOrdering = GenerateOrdering.generate(ordering)
    +    if (!secondOrdering.isEmpty) {
    +      secondOrdering.foreach { order =>
    +        try {
    +          GenerateOrdering.generate(Seq(order))
    +          ordering ++ Seq(order)
    --- End diff --
    
    Update @srowen  Thanks.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to