On 2026-Feb-25, Antonin Houska wrote: > > Hmm, so on the apply side when reading the file, we would first reach > > each toast attribute value, which we know to insert directly to the > > toast table (keeping track of each individually toast pointer as we do > > so); then we reach the heap tuple itself, we [... somehow ...] interpret > > these external indirect toast pointers and substitute the toast pointers > > that we created. So we never have to construct the entire tuple, or > > indeed do anything else with the toasted values other than insert them > > into the toast table. > > Yes, that's what I mean.
Makes sense. Would you be able to try and implement that? > The problem I see here is that for UPDATE you need the old tuple to determine > if its TOAST value should be deleted or if the new tuple should reuse it - > this is how I understand toast_tuple_init(). So the worker would have to store > all the changes somewhere temporarily until it can fully apply the changes > (i.e. until the initial copy and index build is complete). Ah, you're right, that won't work. -- Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/ Tom: There seems to be something broken here. Teodor: I'm in sackcloth and ashes... Fixed. http://postgr.es/m/[email protected]
