diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/encoders/ExpressionEncoder.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/encoders/ExpressionEncoder.scala index 56d29cfbe1f66..63d8a3726d4dd 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/encoders/ExpressionEncoder.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/encoders/ExpressionEncoder.scala @@ -339,9 +339,13 @@ case class ExpressionEncoder[T]( * Returns a new encoder with input columns shifted by `delta` ordinals */ def shift(delta: Int): ExpressionEncoder[T] = { - copy(deserializer = deserializer transform { - case r: BoundReference => r.copy(ordinal = r.ordinal + delta) - }) + if (delta == 0) { + this + } else { + copy(deserializer = deserializer transform { + case r: BoundReference => r.copy(ordinal = r.ordinal + delta) + }) + } } protected val attrs = serializer.flatMap(_.collect {