@@ -370,20 +370,23 @@ class _SCDType2Kind(_ModelKind):
370370 valid_from_name : SQLGlotString = "valid_from"
371371 valid_to_name : SQLGlotString = "valid_to"
372372 invalidate_hard_deletes : SQLGlotBool = False
373- time_data_type : exp .DataType = exp .DataType .build ("TIMESTAMP" )
373+ time_data_type : exp .DataType = Field ( exp .DataType .build ("TIMESTAMP" ), validate_default = True )
374374
375375 forward_only : SQLGlotBool = True
376376 disable_restatement : SQLGlotBool = True
377377
378- @field_validator ("time_data_type" , mode = "before" )
378+ # always=True can be removed once Pydantic 1 is deprecated
379+ @field_validator ("time_data_type" , mode = "before" , always = True )
379380 @classmethod
380381 def _time_data_type_validator (
381382 cls , v : t .Union [str , exp .Expression ], values : t .Any
382383 ) -> exp .Expression :
383384 values = values if isinstance (values , dict ) else values .data
384385 if isinstance (v , exp .Expression ) and not isinstance (v , exp .DataType ):
385386 v = v .name
386- return exp .DataType .build (v , dialect = values .get ("dialect" ))
387+ data_type = exp .DataType .build (v , dialect = values .get ("dialect" ))
388+ data_type .meta ["dialect" ] = values .get ("dialect" )
389+ return data_type
387390
388391 @property
389392 def managed_columns (self ) -> t .Dict [str , exp .DataType ]:
0 commit comments