Hello! I'm having doubts about this fix but most likely i don't understand something. Could you help me to figure it out, please.
The thing is that for custom scan nodes as readme says: "INDEX_VAR is abused to signify references to columns of a custom scan tuple type" But INDEX_VAR has a negative value, so it can not be used in varnullingrels bitmapset. And therefore this improvement seems will not work with custom scan nodes and some extensions that use such nodes. If i'm wrong in my doubts and bitmapset for varnullingrels is ok, may be add a check before adjust_relid_set() call like this: @@ -569,9 +569,10 @@ ChangeVarNodes_walker(Node *node, ChangeVarNodes_context *context) { if (var->varno == context->rt_index) var->varno = context->new_index; - var->varnullingrels = adjust_relid_set(var->varnullingrels, - context->rt_index, - context->new_index); + if (context->rt_index >= 0 && context->new_index >= 0) + var->varnullingrels = adjust_relid_set(var->varnullingrels, + context->rt_index, + With the best wishes, -- Anton A. Melnikov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company