Re: WIP patch: Improve relation size functions such as pg_relation_size() to avoid producing an error when called against a no longer visible relation
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Phil Sorber <phil@omniti.com>
Cc: Robert Haas <robertmhaas@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@postgresql.org, OmniTI DBA <dba@omniti.com>
Date: 2012-01-19T11:19:11Z
Lists: pgsql-hackers
On 23.12.2011 02:01, Phil Sorber wrote: > On Thu, Dec 22, 2011 at 3:19 PM, Robert Haas<robertmhaas@gmail.com> wrote: >> On Thu, Dec 22, 2011 at 2:02 PM, Phil Sorber<phil@omniti.com> wrote: >>> On Thu, Dec 22, 2011 at 1:33 PM, Tom Lane<tgl@sss.pgh.pa.us> wrote: >>>> Robert Haas<robertmhaas@gmail.com> writes: >>>>> I'm wondering if we oughta just return NULL and be done with it. >>>> >>>> +1. There are multiple precedents for that sort of response, which we >>>> introduced exactly so that "SELECT some_function(oid) FROM some_catalog" >>>> wouldn't fail just because one of the rows had gotten deleted by the >>>> time the scan got to it. I don't think it's necessary for the >>>> relation-size functions to be any smarter. Indeed, I'd assumed that's >>>> all that Phil's patch did, since I'd not looked closer till just now. >>> >>> Here it is without the checking for recently dead. If it can't open >>> the relation it simply returns NULL. >> >> I think we probably ought to make pg_database_size() and >> pg_tablespace_size() behave similarly. > > Changes added. Looks good to me, committed. I added a sentence to the docs mentioning the new behavior, and also a code comment to explain why returning NULL is better than throwing an error. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com