Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oic7h-0007Ch-5E for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Oct 2022 13:50:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oic7f-0005QJ-Vw for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Oct 2022 13:50:11 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oic7f-0005QA-4c for pgsql-hackers@lists.postgresql.org; Wed, 12 Oct 2022 13:50:11 +0000 Received: from out3-smtp.messagingengine.com ([66.111.4.27]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oic7Z-0006dV-4b for pgsql-hackers@lists.postgresql.org; Wed, 12 Oct 2022 13:50:10 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 73E3C5C00CC; Wed, 12 Oct 2022 09:50:00 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Wed, 12 Oct 2022 09:50:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1665582600; x= 1665669000; bh=WnB56h6UnFD3sAHxO6j+UiQsLUQqozq7KlAhoDX3AJ8=; b=A xOsjcRDRtQgtILtXOKnJ+o+tdoGATjSF2cW4AUQdfEWhUe85KyCoQDkY64RLpsuW EttmqK0vyyfdhzA8tV6ebauovLzSlTyTZIPc6f5wLrnvLNypDTsXvURTLQCcHfAv P3TkJ3g5GwRPjQnytsNeKWTgxR664uANO3uFUD77RVFqQMX9ld/+4K7clne7Kk5X e2zkkTfoQ/xzOz4M3GE2PNCMtcg+GuRnb6Dx9b0z5zgrhJDwxgKED8kprLMmXem8 MhyVchX1HivEURjgYDlXPPRCca5KZb0iB3eksTBL8o5PKjuqYDTcMhayONVNKmVB miidLlnC0vu1PC39jix9Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfeejkedgieelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpefrvght vghrucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgvihhsvghnthhrrghuthesvghnth gvrhhprhhishgvuggsrdgtohhmqeenucggtffrrghtthgvrhhnpeehleffgeegudejteei hfelteduvdeifffhffdvjedvffegjeekudeludehudeifeenucevlhhushhtvghrufhiii gvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrrdgvihhsvghnthhrrghu thesvghnthgvrhhprhhishgvuggsrdgtohhm X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 12 Oct 2022 09:49:57 -0400 (EDT) Message-ID: <94353655-c177-1f55-7afb-b2090de33341@enterprisedb.com> Date: Wed, 12 Oct 2022 15:49:56 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 Subject: Re: ExecRTCheckPerms() and many prunable partitions Content-Language: en-US To: Amit Langote , Tom Lane Cc: David Rowley , Greg Stark , Zhihong Yu , Julien Rouhaud , Alvaro Herrera , PostgreSQL Hackers References: <3094251.1658955855@sss.pgh.pa.us> <3098829.1658956718@sss.pgh.pa.us> <1756691.1664855667@sss.pgh.pa.us> From: Peter Eisentraut In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk 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.)