On Tue, Jun 08, 2021 at 10:39:24AM -0400, Alvaro Herrera wrote: > My unverified guess is that this code causes too many pipeline stalls > while executing the big per-column loop. Maybe it would be better to > scan the attribute array twice: one to collect all data from > Form_pg_attribute for each column into nicely packed arrays, then in a > second loop process all the recompressions together ... the idea being > that the first loop can run without stalling.
You mean for attlen and attcompression, right? I agree that it would help. A extra set of things worth it here would be to move the allocation and memset(0) of values_free from reform_and_rewrite_tuple(), and do the round of pfree() calls if at least one value has been detoasted. > Maybe at this point reverting is the only solution. That's a safe bet at this point. It would be good to conclude this one by beta2 IMO. -- Michael
signature.asc
Description: PGP signature