Null as a EntryType was always problematic, mostly due to simple fact that in most data sources/sinks it simply does not exists as a standalone type. For example in databases, we can have nullable columns but not null fields.
Same with Parquet and Avro, we can have nullable strings/integeres/maps/etc but we don't have null column type.
That was creating a very inconsistent behavior when reading from those strongly typed data srouces.
Reading a nullable boolean column from parquet where all values are null we would get NullEntry in Flow Schema, instead of getting BoolEntry that is nullable. That was similarly problematic when we wanted to write into parquet a nullable column with only null values in a given row group.
Another indication that this change was necessary is how well it worked with Entry Type while creating entries.
Change Log
Added
Fixed
Changed
Removed
Deprecated
Security
Description
Null as a EntryType was always problematic, mostly due to simple fact that in most data sources/sinks it simply does not exists as a standalone type. For example in databases, we can have nullable columns but not null fields. Same with Parquet and Avro, we can have nullable strings/integeres/maps/etc but we don't have null column type.
That was creating a very inconsistent behavior when reading from those strongly typed data srouces. Reading a nullable boolean column from parquet where all values are null we would get NullEntry in Flow Schema, instead of getting BoolEntry that is nullable. That was similarly problematic when we wanted to write into parquet a nullable column with only null values in a given row group.
Another indication that this change was necessary is how well it worked with Entry Type while creating entries.