From: | Alexander Korotkov <aekorotkov(at)gmail(dot)com> |
---|---|
To: | Noah Misch <noah(at)leadboat(dot)com> |
Cc: | Pavel Borisov <pashkin(dot)elfe(at)gmail(dot)com>, Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org>, Andrei Lepikhov <lepihov(at)gmail(dot)com>, jian he <jian(dot)universality(at)gmail(dot)com>, Artur Zakirov <zaartur(at)gmail(dot)com>, Alexander Lakhin <exclusion(at)gmail(dot)com>, Teodor Sigaev <teodor(at)sigaev(dot)ru>, Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org>, Aleksander Alekseev <aleksander(at)timescale(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Michael Paquier <michael(at)paquier(dot)xyz> |
Subject: | Re: type cache cleanup improvements |
Date: | 2025-04-21 01:54:08 |
Message-ID: | CAPpHfdv5x5VpiBRuAGYUhyT417chXN2G9Dt+=6m+Odi8A5_R=Q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi, Noah!
On Sat, Apr 12, 2025 at 12:43 AM Alexander Korotkov
<aekorotkov(at)gmail(dot)com> wrote:
>
> On Fri, Apr 11, 2025 at 11:32 PM Noah Misch <noah(at)leadboat(dot)com> wrote:
> >
> > On Tue, Oct 22, 2024 at 08:33:24PM +0300, Alexander Korotkov wrote:
> > > On Tue, Oct 22, 2024 at 6:10 PM Pavel Borisov <pashkin(dot)elfe(at)gmail(dot)com> wrote:
> > > > On Tue, 22 Oct 2024 at 11:34, Alexander Korotkov <aekorotkov(at)gmail(dot)com> wrote:
> > > >> I'm going to push this if no objections.
> >
> > (This became commit b85a9d0.)
> >
> > > + /* Call delete_rel_type_cache() if we actually cleared something */
> > > + if (hadTupDescOrOpclass)
> > > + delete_rel_type_cache_if_needed(typentry);
> >
> > I think the intent was to maintain the invariant that a RelIdToTypeIdCacheHash
> > entry exists if and only if certain kinds of data appear in the TypeCacheHash
> > entry. However, TypeCacheOpcCallback() clears TCFLAGS_OPERATOR_FLAGS without
> > maintaining RelIdToTypeIdCacheHash. Is it right to do that?
>
> Thank you for the question. I'll recheck this in next couple of days.
Sorry for the delay. Generally, your finding is correct. But, I
didn't manage to reproduce the situation, where existing code leads to
real error. In order to have it, we must have typcache entry without
TCFLAGS_HAVE_PG_TYPE_DATA and tupDesc, but with some of
TCFLAGS_OPERATOR_FLAGS. Reseting TCFLAGS_HAVE_PG_TYPE_DATA for a
composite type doesn't seem to be possible without resetting the rest
at the same time.
Nevertheless, I think it would be fragile to leave the current code
"as is". If even there is no case of real error (or it's just me
didn't manage to find it), it could appear after further changes of
type cache code. So, the fix is attached.
------
Regards,
Alexander Korotkov
Supabase
Attachment | Content-Type | Size |
---|---|---|
v1-0001-Maintain-RelIdToTypeIdCacheHash-in-TypeCacheOpcCa.patch | application/octet-stream | 2.5 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | jian he | 2025-04-21 02:30:01 | bug: virtual generated column can be partition key |
Previous Message | David Rowley | 2025-04-21 01:52:53 | Re: Typos in the code and README |