diff --git a/sql-plugin/src/main/scala/com/nvidia/spark/rapids/namedExpressions.scala b/sql-plugin/src/main/scala/com/nvidia/spark/rapids/namedExpressions.scala index d71d5e49c7e..a3793668399 100644 --- a/sql-plugin/src/main/scala/com/nvidia/spark/rapids/namedExpressions.scala +++ b/sql-plugin/src/main/scala/com/nvidia/spark/rapids/namedExpressions.scala @@ -19,7 +19,7 @@ package com.nvidia.spark.rapids import java.util.Objects import org.apache.spark.sql.catalyst.analysis.UnresolvedAttribute -import org.apache.spark.sql.catalyst.expressions.{Attribute, AttributeReference, Expression, ExprId, Generator, NamedExpression} +import org.apache.spark.sql.catalyst.expressions.{Attribute, AttributeReference, AttributeSet, Expression, ExprId, Generator, NamedExpression} import org.apache.spark.sql.catalyst.plans.logical.EventTimeWatermark import org.apache.spark.sql.catalyst.util.quoteIdentifier import org.apache.spark.sql.types.{DataType, Metadata} @@ -32,7 +32,7 @@ case class GpuAlias(child: GpuExpression, name: String)( extends GpuUnaryExpression with NamedExpression { // Alias(Generator, xx) need to be transformed into Generate(generator, ...) - override lazy val resolved = + override lazy val resolved: Boolean = childrenResolved && checkInputDataTypes().isSuccess && !child.isInstanceOf[Generator] override def dataType: DataType = child.dataType @@ -217,6 +217,9 @@ case class GpuAttributeReference( override def toAttribute: Attribute = AttributeReference(name, dataType, nullable, metadata)(exprId, qualifier) + @transient + override lazy val references: AttributeSet = AttributeSet(toAttribute) + override def columnarEval(batch: ColumnarBatch): Any = throw new IllegalStateException("Attribute executed without being bound") }