On 06.10.22 15:29, Amit Langote wrote:
I tried in the attached 0004.  ModifyTable gets a new member
extraUpdatedColsBitmaps, which is List of Bitmapset "nodes".

Actually, List of Bitmapsets turned out to be something that doesn't
just-work with our Node infrastructure, which I found out thanks to
-DWRITE_READ_PARSE_PLAN_TREES.  So, I had to go ahead and add
first-class support for copy/equal/write/read support for Bitmapsets,
such that writeNode() can write appropriately labeled versions of them
and nodeRead() can read them as Bitmapsets.  That's done in 0003.  I
didn't actually go ahead and make*all*  Bitmapsets in the plan trees
to be Nodes, but maybe 0003 can be expanded to do that.  We won't need
to make gen_node_support.pl emit *_BITMAPSET_FIELD() blurbs then; can
just use *_NODE_FIELD().

Seeing that on 64-bit platforms we have a 4-byte padding gap in the Bitmapset struct, sticking a node tag in there seems pretty sensible. So turning Bitmapset into a proper Node and then making the other adjustments you describe makes sense to me.

Making a new thread about this might be best.

(I can't currently comment on the rest of the patch set. So I don't know if you'll really end up needing lists of bitmapsets. But from here it looks like turning bitmapsets into nodes might be a worthwhile change just by itself.)



Reply via email to