Re: ExecRTCheckPerms() and many prunable partitions
Peter Eisentraut <peter.eisentraut@enterprisedb.com>
From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: Amit Langote <amitlangote09@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>
Cc: David Rowley <dgrowleyml@gmail.com>, Greg Stark <stark@mit.edu>,
Zhihong Yu <zyu@yugabyte.com>, Julien Rouhaud <rjuju123@gmail.com>,
Alvaro Herrera <alvherre@alvh.no-ip.org>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-10-12T13:49:56Z
Lists: pgsql-hackers
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.)
Commits
-
Add a test case for a316a3bc
- 054ff3b33a85 17.0 landed
- 0a14bca662a4 16.0 landed
-
Correctly set userid of subquery relations' child rels
- a316a3bc6d3f 16.0 landed
-
Fix buggy recursion in flatten_rtes_walker().
- c7468c73f7b6 16.0 landed
-
Remove some dead code in selfuncs.c
- 438e6b724090 16.0 landed
-
Update outdated comment in ApplyRetrieveRule
- 29861e228a47 16.0 landed
-
Rework query relation permission checking
- a61b1f74823c 16.0 landed
-
Generalize ri_RootToPartitionMap to use for non-partition children
- fb958b5da86d 16.0 landed
-
Stop accessing checkAsUser via RTE in some cases
- 599b33b9492d 16.0 landed
-
Add 'missing_ok' argument to build_attrmap_by_name
- ad86d159b6ab 16.0 landed