Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wTTmQ-000YVE-1s for pgsql-hackers@arkaria.postgresql.org; Sun, 31 May 2026 00:11:50 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wTTmM-006e11-2C for pgsql-hackers@arkaria.postgresql.org; Sun, 31 May 2026 00:11:47 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wTTmM-006e0s-0s for pgsql-hackers@lists.postgresql.org; Sun, 31 May 2026 00:11:46 +0000 Received: from meldrar.postgresql.org ([2a02:c0:301:0:ffff::31]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wTTmK-00000000O2j-00XT for pgsql-hackers@postgresql.org; Sun, 31 May 2026 00:11:46 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Content-Transfer-Encoding:Content-Type: Mime-Version:References:In-Reply-To:From:Subject:Cc:To:Message-Id:Date:Sender :Reply-To:Content-ID:Content-Description; bh=rQrVhO8DAcNcyVz5gmrJ4y1mS+vf1RwjQbrhUCrORHM=; b=fhQ6OnPRMOCGlOZa8Hi1ZQP4ol NsdYyPoyZyaj50bEZvLe+qiTp9I82lho30LhwSu7IYzv274btDNQvYC4by+NxhxgrnTsZJW/H9gLl pG3LNi+J8NZSYBxlr9WqA5uiKecsVLLQdAH9S2y4kWib/HV69k3qGoJnFoMsogc6ysrMGJ2c/ytOP v/X3x4zr8DZcXxW2Kh2/Cekbaus40NPxZbROR+470lXvXL9GopucOlLsR1qf0ag3WQdRTA0t1Jww4 PxZ8uXomZNsmEacGHlPZCuy9KYLeoIW+FQtfrnAXZhhTo9teQvklWGEtG6KVNKcYd28wkVE7MH2fN wrurVP3A==; Received: from [2409:11:4120:300:7f32:f171:4290:b894] (helo=localhost) by meldrar.postgresql.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wTTmA-0014Xo-2x; Sun, 31 May 2026 00:11:37 +0000 Date: Sun, 31 May 2026 09:11:19 +0900 (JST) Message-Id: <20260531.091119.2213733238436650503.ishii@postgresql.org> To: assam258@gmail.com Cc: jian.universality@gmail.com, zsolt.parragi@percona.com, sjjang112233@gmail.com, vik@postgresfriends.org, er@xs4all.nl, jacob.champion@enterprisedb.com, david.g.johnston@gmail.com, peter@eisentraut.org, li.evan.chao@gmail.com, pgsql-hackers@postgresql.org Subject: Re: Row pattern recognition From: Tatsuo Ishii In-Reply-To: References: X-Mailer: Mew version 6.8 on Emacs 29.3 Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Host-Lookup-Failed: Reverse DNS lookup failed for 2409:11:4120:300:7f32:f171:4290:b894 (failed) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi Henson, Jian, >> In src/include/nodes/execnodes.h, we're adding quite a few fields to >> WindowAggState that are only used for RPR queries. >> Should we consolidate these fields behind a single pointer (named >> RPRContext) to keep the WindowAggState size smaller for non-RPR >> queries? > > The size win is real -- it's roughly 450-500 bytes per WindowAggState > that every non-RPR window query carries today. But it takes a wide > code change to get there: it reshapes every RPR access path, a > sizable (if mostly mechanical) diff across nodeWindowAgg.c, > execRPR.c, and the explain side. > > Tatsuo, as co-author -- do you want this in v48? If you do, I'll > prepare the RPRContext consolidation as an incremental patch for you to > fold into v48. It isn't blocking either way. Basically I think Jian's idea is good. In addition to the size reason above, we would have less code changes when we adapt existing R020 codes to R010. However it will need a wide code change as Henson said. I would like to focus on stabilizing our code for now. Therefore I would not want the refactoring in v48. Regards, -- Tatsuo Ishii SRA OSS K.K. English: http://www.sraoss.co.jp/index_en/ Japanese:http://www.sraoss.co.jp