Thread: RFC - change of behaviour of pg_get_userbyid & pg_get_viewdef?
Two routines do eccentric things when they can't find required supporting data: pg_get_userbyid returns 'unknown (UID=<uid-number>)' when the UID does not exist. pg_get_viewdef returns 'Not a view' when passed a non-existant or non-view table it also signals errors when the underlying metadata can not be found. The proposal is to return NULL in the above cases - in the final case, probably also generate a NOTICE. Does anybody have a problem with this? Think it's a bad idea etc? ---------------------------------------------------------------- Philip Warner | __---_____ Albatross Consulting Pty. Ltd. |----/ - \ (A.B.N. 75 008 659 498) | /(@) ______---_ Tel: (+61) 0500 83 82 81 | _________ \ Fax: (+61) 0500 83 82 82 | ___________ | Http://www.rhyme.com.au | / \| | --________-- PGP key available upon request, | / and from pgp5.ai.mit.edu:11371 |/
Philip Warner <pjw@rhyme.com.au> writes: > pg_get_viewdef > returns 'Not a view' when passed a non-existant or non-view table > it also signals errors when the underlying metadata can not be found. > The proposal is to return NULL in the above cases - in the final case, > probably also generate a NOTICE. I don't believe it's practical to trap errors and return a NULL for broken views. Moreover, I do not think it's a good idea to respond to client errors (invalid view name) the same as database problems (broken views). So, I agree with the part of the proposal that says to return NULL instead of 'Not a view' when there is no view by the given name, but I do not agree with trying to suppress errors due to metadata problems. regards, tom lane
Re: [HACKERS] RFC - change of behaviour of pg_get_userbyid & pg_get_viewdef?
From
Philip Warner
Date:
At 19:22 24/09/00 -0500, Dominic J. Eidson wrote: > >In these cases, is NULL = 0? - What if it returns the UID for "root" >(typically UID 0)... I think an error message should/would be better in >this case. > No NULL is NULL, a special value that usually means 'nothing found'. ---------------------------------------------------------------- Philip Warner | __---_____ Albatross Consulting Pty. Ltd. |----/ - \ (A.B.N. 75 008 659 498) | /(@) ______---_ Tel: (+61) 0500 83 82 81 | _________ \ Fax: (+61) 0500 83 82 82 | ___________ | Http://www.rhyme.com.au | / \| | --________-- PGP key available upon request, | / and from pgp5.ai.mit.edu:11371 |/
Based on the lack of reaction on GENERAL and SQL, I am inclined to go ahead with the changes below at least as far as returning NULL instead of 'Not a View' or 'unknown (UID=<uid-number>)' (as per Tom's request), if noone objects... At 13:15 24/09/00 +1000, Philip Warner wrote: > >Two routines do eccentric things when they can't find required supporting >data: > >pg_get_userbyid > > returns 'unknown (UID=<uid-number>)' when the UID does not exist. > >pg_get_viewdef > > returns 'Not a view' when passed a non-existant or non-view table > it also signals errors when the underlying metadata can not be found. > >The proposal is to return NULL in the above cases - in the final case, >probably also generate a NOTICE. > >Does anybody have a problem with this? Think it's a bad idea etc? > ---------------------------------------------------------------- Philip Warner | __---_____ Albatross Consulting Pty. Ltd. |----/ - \ (A.B.N. 75 008 659 498) | /(@) ______---_ Tel: (+61) 0500 83 82 81 | _________ \ Fax: (+61) 0500 83 82 82 | ___________ | Http://www.rhyme.com.au | / \| | --________-- PGP key available upon request, | / and from pgp5.ai.mit.edu:11371 |/