Right now I had to read (uncommented) source code for example to understand that null values when scanned/read will map to a golang nil value. This is not an obvious choice. A design where you had chosen to map the null value to a corresponding NullTime, NullInt64 etc with Valid = false (preserving the oid type information) would have been just as likely from my perspective.