@@ -19,8 +19,9 @@ package org.apache.spark.sql.catalyst.plans.logical
19
19
20
20
import org .apache .spark .SparkException
21
21
import org .apache .spark .sql .AnalysisException
22
- import org .apache .spark .sql .catalyst .expressions .{Expression , Literal , UnaryExpression , Unevaluable }
22
+ import org .apache .spark .sql .catalyst .expressions .{AnalysisAwareExpression , Expression , Literal , UnaryExpression , Unevaluable }
23
23
import org .apache .spark .sql .catalyst .parser .ParserInterface
24
+ import org .apache .spark .sql .catalyst .trees .TreePattern .{ANALYSIS_AWARE_EXPRESSION , TreePattern }
24
25
import org .apache .spark .sql .catalyst .util .{GeneratedColumn , IdentityColumn , V2ExpressionBuilder }
25
26
import org .apache .spark .sql .catalyst .util .ResolveDefaultColumns .validateDefaultValueExpr
26
27
import org .apache .spark .sql .catalyst .util .ResolveDefaultColumnsUtils .{CURRENT_DEFAULT_COLUMN_METADATA_KEY , EXISTS_DEFAULT_COLUMN_METADATA_KEY }
@@ -198,8 +199,16 @@ case class DefaultValueExpression(
198
199
child : Expression ,
199
200
originalSQL : String ,
200
201
analyzedChild : Option [Expression ] = None )
201
- extends UnaryExpression with Unevaluable {
202
+ extends UnaryExpression
203
+ with Unevaluable
204
+ with AnalysisAwareExpression [DefaultValueExpression ] {
205
+
206
+ final override val nodePatterns : Seq [TreePattern ] = Seq (ANALYSIS_AWARE_EXPRESSION )
207
+
202
208
override def dataType : DataType = child.dataType
209
+ override def stringArgs : Iterator [Any ] = Iterator (child, originalSQL)
210
+ override def markAsAnalyzed (): DefaultValueExpression =
211
+ copy(analyzedChild = Some (child))
203
212
override protected def withNewChildInternal (newChild : Expression ): Expression =
204
213
copy(child = newChild)
205
214
0 commit comments