Andres Freund <andres@2ndquadrant.com> writes:
> Tom: It looks to me like printtup_prepare_info won't normally be called
> in an held cursor. But if some concurrent DDL changed the number of
> columns in typeinfo vs thaose in the the receiver that could explain the
> issue and why its not seen all the time, right?
It looks to me like there are probably two triggering conditions:
1. Client is doing a direct protocol Execute on a held-cursor portal.
2. Cache flush occurs to drop the syscache entries needed by
getTypeOutputInfo. (Otherwise, they'd still be around from when the
held cursor was created.)
The first of these explains why we don't see it in the
CLOBBER_CACHE_ALWAYS buildfarm runs, and the second one explains why
Joshua is only seeing it intermittently and not every darn time his
application does that.
regards, tom lane