From: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
---|---|
To: | Michael Paquier <michael(at)paquier(dot)xyz> |
Cc: | Justin Pryzby <pryzby(at)telsasoft(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: pg_collation_actual_version() ERROR: cache lookup failed for collation 123 |
Date: | 2021-02-17 21:45:53 |
Message-ID: | CA+hUKGLOtrctjD3qN429n-knPBv7jS6LYDjNP9rW0Ggh-gQJsg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, Feb 17, 2021 at 8:04 PM Michael Paquier <michael(at)paquier(dot)xyz> wrote:
> On Wed, Feb 17, 2021 at 03:08:36PM +1300, Thomas Munro wrote:
> > tp = SearchSysCache1(COLLOID, ObjectIdGetDatum(oid));
> > if (!HeapTupleIsValid(tp))
> > + {
> > + if (found)
> > + {
> > + *found = false;
> > + return NULL;
> > + }
> > elog(ERROR, "cache lookup failed for collation %u", oid);
> > + }
> > collform = (Form_pg_collation) GETSTRUCT(tp);
> > version = get_collation_actual_version(collform->collprovider,
> > NameStr(collform->collcollate));
> > + if (found)
> > + *found = true;
> > }
>
> FWIW, we usually prefer using NULL instead of an error for the result
> of a system function if an object cannot be found because it allows
> users to not get failures in a middle of a full table scan if things
> like an InvalidOid is mixed in the data set. For example, we do that
> in the partition functions, for objectaddress functions, etc. That
> would make this patch set simpler, switching
> get_collation_version_for_oid() to just use a missing_ok argument.
> And that would be more consistent with the other syscache lookup
> functions we have here and there in the tree.
I guess I was trying to preserve a distinction between "unknown OID"
and "this is a collation OID, but I don't have version information for
it" (for example, "C.utf8"). But it hardly matters, and your
suggestion works for me. Thanks for looking!
Attachment | Content-Type | Size |
---|---|---|
v2-0001-Hide-internal-error-for-pg_collation_actual_versi.patch | text/x-patch | 4.4 KB |
v2-0002-pg_collation_actual_version-pg_collation_current_.patch | text/x-patch | 6.2 KB |
v2-0003-Refactor-get_collation_current_version.patch | text/x-patch | 2.7 KB |
v2-0004-Tab-complete-CREATE-COLLATION.patch | text/x-patch | 1.3 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Jacob Champion | 2021-02-17 22:02:38 | Re: Support for NSS as a libpq TLS backend |
Previous Message | Daniel Gustafsson | 2021-02-17 21:35:33 | Re: Support for NSS as a libpq TLS backend |