On Sun, Jan 22, 2023 at 08:56:12PM +0000, Rory Campbell-Lange wrote:
> I have implemented a fairly efficient line-wise dump file reader which includes a rudimentary table typer. However I'm not sure how to represent nulls in my go code so that I can pass these onto parquet encoders.
>
> Is a struct something like the following a good idea for each type?
>
> type pgInt64 struct {
> val int64
> isNull bool
> }
I'm not experienced with Parquet at all, but that struct plan is
almost exactly the same as the format go's database/sql package
reads into:
$ go doc sql NullInt64
package sql // import "database/sql"
type NullInt64 struct {
Int64 int64
Valid bool // Valid is true if Int64 is not NULL
}
...
So yes, it seems like a reasonable way to represent data that may
contain nulls. Whether this is the easiest way to pass to parquet, I
don't know, but I'd imagine it shouldn't be too bad.
Nick