From: Andrew Dunstan <andrew@dunslane.net>
To: Andres Freund <andres@anarazel.de>
Cc: Tom Lane <tgl@sss.pgh.pa.us>
Cc: exclusion@gmail.com
Cc: pgsql-bugs@lists.postgresql.org
Subject: Re: BUG #17994: Invalidating relcache corrupts tupDesc inside ExecEvalFieldStoreDeForm()
Date: Tue, 11 Jul 2023 10:15:52 -0400
Message-ID: <27522775-aa59-38d4-716e-c2de35bc3d5a@dunslane.net> (raw)
In-Reply-To: <20230710195107.r4s3ig6llhy2j3zb@awork3.anarazel.de>
References: <cf24e075-0809-b9b8-4c73-48eed105b9a9@dunslane.net>
<1749275.1688132604@sss.pgh.pa.us>
<e56b9c00-291b-dac0-6260-74137fdaffa5@dunslane.net>
<1800418.1688152085@sss.pgh.pa.us>
<3878b204-e9b4-6e09-9adb-7a37b8db34a6@dunslane.net>
<20230702215420.mal2kg5a4kasme5j@awork3.anarazel.de>
<213081.1688335023@sss.pgh.pa.us>
<20230702221320.t2yr52ozuuzmhcdy@awork3.anarazel.de>
<2649715f-eff4-efe3-6a8d-7126a8624bc3@dunslane.net>
<133548e7-9d69-4b74-5b11-d0ab30a616ef@dunslane.net>
<20230710195107.r4s3ig6llhy2j3zb@awork3.anarazel.de>
On 2023-07-10 Mo 15:51, Andres Freund wrote:
> Hi,
>
> On 2023-07-08 08:48:00 -0400, Andrew Dunstan wrote:
>> On 2023-07-02 Su 22:15, Andrew Dunstan wrote:
>>>>>> Separately, will this work correctly with procedures keeping values alive
>>>>>> across transactions?
>>>>> That might be an issue. But couldn't we make this cache just live for
>>>>> the life of the process? It's unlikely to get large.
>>>> I don't have a good handle about how big it'd end up being in some of the less
>>>> common workloads. I can imagine workloads with temp tables or such churning
>>>> through a lot of default values - often the "keyed by value" approach will
>>>> save the day, but I imagine not always.
>>> The maximum number of entries in the table is the number of pg_attribute
>>> rows with atthasmissing = true and attbyval = false. In practice I
>>> suspect that's mostly going to be fairly low.
> It's not really bound by that, because the set of rows can change over
> time. Particularly with temp tables.
How many times are people going to add a new column with a non-null
default to a temp table? Usually you know the shape you want for a temp
table when you create it, I should think. Even in a long-running
pgbouncer session I wouldn't expect this to balloon substantially.
>
>
>> The thread seems to have died down a bit. Do we have a consensus on Tom's
>> approach?
> I guess so. It's far from pretty, but nobody really has come up with something
> better.
>
OK, I'll send a revised patch.
cheers
andrew
--
Andrew Dunstan
EDB:https://www.enterprisedb.com
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-bugs@postgresql.org
Cc: andrew@dunslane.net, andres@anarazel.de, tgl@sss.pgh.pa.us, exclusion@gmail.com, pgsql-bugs@lists.postgresql.org
Subject: Re: BUG #17994: Invalidating relcache corrupts tupDesc inside ExecEvalFieldStoreDeForm()
In-Reply-To: <27522775-aa59-38d4-716e-c2de35bc3d5a@dunslane.net>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox