On 15/11/2018 15:10, Robert Haas wrote: > I don't have a strong position on 1 vs. 2 vs. 3, but I do think it > would be nicer not to use '\0' as a column value. I'd suggest you use > 'n' or '0' or '-' or some other printable character instead.
I had carefully considered this when attidentity was added. Using '\0' allows you to use this column as a boolean in C code, which is often convenient. Also, there are numerous places where a pg_attribute form or a tuple descriptor is initialized to all zeroes, which works well for most fields, and adding one exception like this would create a lot of extra work and bloat the patch and create potential for future instability. Also note that a C char '\0' is represented as '' (empty string) in SQL, so this also creates a natural representation in SQL. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services