Re: BUG #17994: Invalidating relcache corrupts tupDesc inside ExecEvalFieldStoreDeForm()
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andrew Dunstan <andrew@dunslane.net>
Cc: Andres Freund <andres@anarazel.de>, exclusion@gmail.com,
pgsql-bugs@lists.postgresql.org
Date: 2023-06-30T12:46:44Z
Lists: pgsql-bugs
Andrew Dunstan <andrew@dunslane.net> writes: > On 2023-06-29 Th 18:41, Tom Lane wrote: >> Why not make the hash key be the value >> itself? Wrap it in a bytea perhaps to avoid needing a bespoke >> hash function. > Not sure I understand. Say the missingval for a particular column is text 'abc'. We don't actually care which column it is, all we need is a copy of that datum that will stay put for the rest of the transaction. So I'm thinking that the lookup key for the hash table should actually be the contents of the datum, and we don't need to store anything else at all. (If we happen to have two columns with the same missingval, they can perfectly well share this hash entry.) Then there's no question of invalidation, or at least the existing invalidation mechanisms for tupdescs do all we need. regards, tom lane
Commits
-
Cache by-reference missing values in a long lived context
- 2d13dab048a7 11.22 landed
- f938acd68b08 16.0 landed
- a68458108512 17.0 landed
- 75f323aa1c1e 15.5 landed
- 7f4515a58ebd 14.10 landed
- 1bb619d4d628 13.13 landed
- 01993ac748fd 12.17 landed
-
Fix order of operations in ExecEvalFieldStoreDeForm().
- d0ab203bc192 13.12 landed
- cc8cca3c2d60 15.4 landed
- 7f11b7a9cf18 11.21 landed
- 53b93e853ffe 12.16 landed
- 43af714defa0 16.0 landed
- 0789b82a9792 14.9 landed