File tree Expand file tree Collapse file tree 1 file changed +7
-5
lines changed Expand file tree Collapse file tree 1 file changed +7
-5
lines changed Original file line number Diff line number Diff line change @@ -356,10 +356,12 @@ impl CachingDeleteFileLoader {
356356 let mut row_predicate = AlwaysTrue ;
357357 for & mut ( ref mut column, ref field_name) in & mut datum_columns_with_names {
358358 if let Some ( item) = column. next ( ) {
359- if let Some ( datum) = item? {
360- row_predicate = row_predicate
361- . and ( Reference :: new ( field_name. clone ( ) ) . equal_to ( datum. clone ( ) ) ) ;
362- }
359+ let cell_predicate = if let Some ( datum) = item? {
360+ Reference :: new ( field_name. clone ( ) ) . equal_to ( datum. clone ( ) )
361+ } else {
362+ Reference :: new ( field_name. clone ( ) ) . is_null ( )
363+ } ;
364+ row_predicate = row_predicate. and ( cell_predicate)
363365 }
364366 }
365367 result_predicate = result_predicate. and ( row_predicate. not ( ) ) ;
@@ -485,7 +487,7 @@ mod tests {
485487 . expect ( "error parsing batch stream" ) ;
486488 println ! ( "{}" , parsed_eq_delete) ;
487489
488- let expected = "(((y != 1) OR (z != 100)) OR (a != \" HELP\" )) AND (y != 2)" . to_string ( ) ;
490+ let expected = "(((y != 1) OR (z != 100)) OR (a != \" HELP\" )) AND ((( y != 2) OR (z IS NOT NULL)) OR (a IS NOT NULL) )" . to_string ( ) ;
489491
490492 assert_eq ! ( parsed_eq_delete. to_string( ) , expected) ;
491493 }
You can’t perform that action at this time.
0 commit comments