Re: Cache lookup errors with functions manipulation object addresses
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Andrew Dunstan <andrew.dunstan@2ndquadrant.com>, pgsql-hackers@lists.postgresql.org
Date: 2018-12-25T04:34:38Z
Lists: pgsql-hackers
Attachments
- 0001-Add-flag-to-format_type_extended-to-enforce-NULL-nes.patch (text/x-diff) patch 0001
- 0002-Refactor-format-procedure-and-operator-APIs-to-be-mo.patch (text/x-diff) patch 0002
- 0003-Eliminate-user-visible-cache-lookup-errors-for-objad.patch (text/x-diff) patch 0003
Álvaro, all, On Fri, Dec 14, 2018 at 09:04:36AM +0900, Michael Paquier wrote: > Thanks again for looking up at what was proposed. I'll see if I can > finish the refactoring part for the next CF, and be done with this > stuff. Please find attached an updated patch set which reworks the SQL interface for object addresses so as NULL-ness is handled consistently for all object types. This has needed a couple of extensions to some current object-lookup APIs, which are added as refactoring bits without breaking existing callers: - Procedures and operators gain a new _extended routine which can take a set of flags to enforce a NULL result or force qualification. - format_type_extended needs an extra flag to enforce NULL. On top of the refactoring issues, here is the list of changes to make things work: - The object type can never be NULL, meaning that for undefined relations, routines or constraints the caller gets a generic name even if the object is not defined. (That's the definition mentioned a couple of messages upthread). - Large object existence is checked with LargeObjectExists(). - Table columns show all the fields as NULL if the object identity cannot be found instead of showing the table and its schema. With that all the regression tests show a consistent behavior for all object types when those are undefined. Thoughts? -- Michael
Commits
-
Eliminate cache lookup errors in SQL functions for object addresses
- 2a10fdc4307a 14.0 landed
-
Refactor routines for name lookups of procedures and operators
- aa38434824c4 14.0 landed
-
Add new flag to format_type_extended() to get NULL for undefined type
- 1185c782943c 14.0 landed
-
Introduce new extended routines for FDW and foreign server lookups
- 8fb569e978af 12.0 landed
-
Refactor routines for subscription and publication lookups
- 1d6fbc38d9ed 12.0 landed
-
get_relid_attribute_name is dead, long live get_attname
- 8237f27b504f 11.0 landed
-
Tweak parser so that there is a defined representation for datatypes
- a585c20d12d0 7.2.1 cited