@@ -114,7 +114,6 @@ def _check_constant_result(self, input_data, args, result):
114114 return result
115115
116116 def __call__ (self , * args , input_data = None , row_number = None , ** kwargs ):
117-
118117 if self ._pass_input_data :
119118 kwargs ["raw_input" ] = input_data
120119 if self ._pass_row_index :
@@ -393,7 +392,7 @@ def mock_stddev(column: ColumnEmulator) -> ColumnEmulator:
393392
394393@patch ("approx_percentile_accumulate" )
395394def mock_approx_percentile_accumulate (
396- column : Union [TableEmulator , ColumnEmulator ]
395+ column : Union [TableEmulator , ColumnEmulator ],
397396) -> ColumnEmulator :
398397 # TODO SNOW-1800512: Fix, returns dummy of 42 for now.
399398 _logger .warning ("TODO SNOW-1800512: Returns dummy value of 42 now, need to fix." )
@@ -707,6 +706,18 @@ def mock_abs(expr):
707706 return abs (expr )
708707
709708
709+ @patch ("nullifzero" )
710+ def mock_nullifzero (expr : ColumnEmulator ) -> ColumnEmulator :
711+ def convert_zero_to_null (value ):
712+ if value == 0 or value == 0.0 :
713+ return None
714+ return value
715+
716+ result = expr .apply (convert_zero_to_null )
717+ result .sf_type = ColumnType (expr .sf_type .datatype , nullable = True )
718+ return result
719+
720+
710721@patch ("to_decimal" )
711722def mock_to_decimal (
712723 e : ColumnEmulator ,
@@ -974,7 +985,6 @@ def convert_timestamp(row):
974985 if data is None :
975986 return None
976987 try :
977-
978988 datatype = column .sf_type .datatype
979989 if isinstance (datatype , TimestampType ):
980990 # data is datetime.datetime type
@@ -1206,7 +1216,10 @@ def convert_char(data, _fmt):
12061216 return try_convert (convert_numeric_to_str , try_cast , data )
12071217 elif isinstance (source_datatype , (DateType , TimeType )):
12081218 default_format = _DEFAULT_OUTPUT_FORMAT .get (type (source_datatype ))
1209- (format , _ ,) = convert_snowflake_datetime_format (
1219+ (
1220+ format ,
1221+ _ ,
1222+ ) = convert_snowflake_datetime_format (
12101223 _fmt , default_format = default_format , is_input_format = False
12111224 )
12121225 convert_date_time_to_str = (
@@ -1219,7 +1232,10 @@ def convert_char(data, _fmt):
12191232 )
12201233 elif isinstance (source_datatype , TimestampType ):
12211234 default_format = _DEFAULT_OUTPUT_FORMAT .get (TimestampType )
1222- (format , fractional_seconds ,) = convert_snowflake_datetime_format (
1235+ (
1236+ format ,
1237+ fractional_seconds ,
1238+ ) = convert_snowflake_datetime_format (
12231239 _fmt , default_format , is_input_format = False
12241240 )
12251241 # handle 3f, can use str index
0 commit comments