diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/GenerateOrdering.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/GenerateOrdering.scala index 5635c91830f4..d6e3e0060b09 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/GenerateOrdering.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/GenerateOrdering.scala @@ -154,12 +154,14 @@ class LazilyGeneratedOrdering(val ordering: Seq[SortOrder]) extends Ordering[Int private[this] var generatedOrdering = GenerateOrdering.generate(ordering) def compare(a: InternalRow, b: InternalRow): Int = { + if (generatedOrdering == null) { + generatedOrdering = GenerateOrdering.generate(ordering) + } generatedOrdering.compare(a, b) } private def readObject(in: ObjectInputStream): Unit = Utils.tryOrIOException { in.defaultReadObject() - generatedOrdering = GenerateOrdering.generate(ordering) } }