On Fri, Aug 07, 2020 at 12:16:11PM +0900, Amit Langote wrote: > Curiously, Justin mentioned upthread that the crash occurred during > BIND of a prepared query, so it better had been that a custom plan was > being executed, because a generic one based on fewer partitions would > be thrown away due to A.I.M. invoked during AcquireExecutorLocks().
Well this statement should only be executed once, and should be using PQexecParams and not PQexecPrepared (pygresql: pg.DB().query_prepared()). (gdb) p portal->name $30 = 0xf03238 "" (gdb) p portal->prepStmtName $31 = 0x0 (gdb) p *portal->cplan $24 = {magic = 953717834, stmt_list = 0x682ec38, is_oneshot = false, is_saved = true, is_valid = true, planRoleId = 16554, dependsOnRole = false, saved_xmin = 0, generation = 1, refcount = 1, context = 0x682dfd0} I'm not sure why is_oneshot=false, though... -- Justin