> > I think what we ought to do is make ShmemAlloc act like palloc > > (ie throw error not return NULL), and remove the duplicated error > > checks. For the one caller that that would be bad for, we could > > invent something like ShmemAllocNoError, or ShmemAllocExtended with > > a no_error flag, or whatever other new API suits your fancy. But > > as-is, it's just inviting more errors-of-omission like the large > > number that already exist. I think people are conditioned by palloc > > to expect such functions to throw error. > > The only reason why I did not propose that for ShmemAlloc is because > of extensions potentially using this routine and having some special > handling when it returns NULL. And changing it to behave like palloc > would break such extensions.
I suggest to keep ShmemAlloc as is for backward compatibility and introduce a new procedure ShmemAllocSafe. Also we could add a scary comment (and also a warning log message?) that ShmemAlloc is deprecated and possibly will be removed in later releases. -- Best regards, Aleksander Alekseev -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers