I wrote: > Greg Smith <greg@xxxxxxxxxxxxxxx> writes: >> I've struggled with scripts using pg_relation_size doing strange things >> because of this more than once. How about a) return NULL and b) log at >> NOTICE that you just asked for something undefined? > I don't care for the NOTICE at all; it's just useless log bloat (that > likely will never be seen by a human) in most use-cases. Either we > think this is an expected case, or not. It strikes me that if we were willing to throw code at the problem, we could make it work like this: 1. Try to open the relation. If successful, proceed as normal. 2. Try to fetch the pg_class row by OID, using SnapshotDirty (or perhaps the surrounding query's snapshot). If we can find it under a non-current snapshot, return NULL. 3. Else throw error. This would properly throw error for cases where you'd passed the wrong catalog's OID column to pg_relation_size. Depending on how tense we were about the snapshot selection, it might sometimes return NULL in cases where an error would be more appropriate (because the relation had been dead for some time). regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general