I noticed while going over the multirange types patch that it adds a
pointless typiofunc cached OID to a struct used for I/O functions'
fn_extra. It seems to go completely unused, so I checked range types
(which this was cribbed from) and indeed, it is completely unused there
either. My guess is that it was in turn cribbed from array's
ArrayMetaState, which is considerably more sophisticated; I suspect
nobody noticed that caching it was pointless.
Here's a patch to remove it from rangetypes.c. It doesn't really waste
much memory anyway, but removing it lessens the cognitive load by one or
two bits.
--
Álvaro Herrera