Basic types, integers, floats, string, bool, time.Time, net.IP, net.IPNet. All struct fields are nullable by default and zero values (empty string, 0, zero time, empty map or slice, nil ptr) are marshalled as SQL NULL. pg:",notnull" is used to add SQL NOT NULL constraint and pg:",use_zero" to allow Go zero values. sql.NullBool, sql.NullString, sql.NullInt64, sql.NullFloat64 and pg.NullTime.