Remove partial, broken support for NULL pointers when fetching attributes.
Robert Haas <rhaas@postgresql.org>
Remove partial, broken support for NULL pointers when fetching attributes. Previously, fastgetattr() and heap_getattr() tested their fourth argument against a null pointer, but any attempt to use them with a literal-NULL fourth argument evaluated to *(void *)0, resulting in a compiler error. Remove these NULL tests to avoid leading future readers of this code to believe that this has a chance of working. Also clean up related legacy code in nocachegetattr(), heap_getsysattr(), and nocache_index_getattr(). The new coding standard is that any code which calls a getattr-type function or macro which takes an isnull argument MUST pass a valid boolean pointer. Per discussion with Bruce Momjian, Tom Lane, Alvaro Herrera.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/common/heaptuple.c | modified | +17 −57 |
| src/backend/access/common/indextuple.c | modified | +3 −36 |
| src/backend/access/heap/heapam.c | modified | +5 −5 |
| src/include/access/htup.h | modified | +7 −7 |
| src/include/access/itup.h | modified | +4 −4 |