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 1w19pi-0002nZ-0M for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Mar 2026 21:14:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w19ph-000EVg-0b for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Mar 2026 21:14:09 +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 1w19pg-000EVY-2w for pgsql-hackers@lists.postgresql.org; Fri, 13 Mar 2026 21:14:09 +0000 Received: from fhigh-b3-smtp.messagingengine.com ([202.12.124.154]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1w19pf-000000001kK-0BAR for pgsql-hackers@lists.postgresql.org; Fri, 13 Mar 2026 21:14:09 +0000 Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44]) by mailfhigh.stl.internal (Postfix) with ESMTP id D03187A00F1; Fri, 13 Mar 2026 17:14:04 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-04.internal (MEProxy); Fri, 13 Mar 2026 17:14:04 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=anarazel.de; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm1; t=1773436444; x=1773522844; bh=YNhQjvIgOQ+/mGCpZvNoUL/2PT2xiyP9x4uuBliTXuU=; b= zKZ3jj/ooFmeJPx3lv+Vi/qmiOfqcgBGetRlQULsS1FMroutg78oaxS/IVl7WHqS FGUO/Tz71Ebi6EtcSh/5chc3eQZVGwgk3vdmp6F6FIiC3GwSYU++PpXtNoV6gUts liCLzmRSN4a35viRUdcF4+x85uWU8MoMWs6gmqIehI2yZ6VlDAw0TGxlLCc1JmOv zeDV2THkukVJnx6u3gmT8ooFn3v1cNCu+fIjMmMSYcM8H/KDyl/6K94N5pJppCvK d//PV9dFJUKN45DetLodn9aSMtzpOT7axKOAsAcfaF6i3Z43/rbs1ojiYBkNjimm 7v5TXhyK3Ut7ulOhBHr83w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1773436444; x= 1773522844; bh=YNhQjvIgOQ+/mGCpZvNoUL/2PT2xiyP9x4uuBliTXuU=; b=d 8QvVaOFKc3E8fRIMRpiNsMjwswXbBENDkmN+xImNjUZRjhLbJOt9i6nxa/ctWJjz 1s2CCNn/JWEW7oxT803h8McKYBSx3E9UvMcN53vQNrRlxIuwBUXeCy9S+Fpna1Ac tjUvvXZzWf+Dh0A9/2h+84Ku039wCCuS8J01e9wx6xQ62j2upcrQ17FIDUEp/Duh gSZScZPc0DvFPd3bvLCnmX4zUOPWAtoy4JIXtMYkYirnl//KDIz0FRX9YbN3n2M9 wuttZlgqxhxL7U107QyJfqnKhvpsQDuAQZmTtokgPQwmU7a+WkzZVponmOOvmNKs bUdedXqKK9gIjRr4InT8w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvledtjeduucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepfffhvfevuffkfhggtggugfgjsehtkefstddttddunecuhfhrohhmpeetnhgurhgv shcuhfhrvghunhguuceorghnughrvghssegrnhgrrhgriigvlhdruggvqeenucggtffrrg htthgvrhhnpeehvdefffdujeevlefgheekueeuueevgfethfeivdffkeeufeehueeufeei teeugeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe grnhgurhgvshesrghnrghrrgiivghlrdguvgdpnhgspghrtghpthhtohepvddpmhhouggv pehsmhhtphhouhhtpdhrtghpthhtoheprghlvhhhvghrrhgvsehkuhhrihhlvghmuhdrug gvpdhrtghpthhtohepphhgshhqlhdqhhgrtghkvghrsheslhhishhtshdrphhoshhtghhr vghsqhhlrdhorhhg X-ME-Proxy: Feedback-ID: id4a34324:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 13 Mar 2026 17:14:04 -0400 (EDT) Date: Fri, 13 Mar 2026 17:14:03 -0400 From: Andres Freund To: =?utf-8?Q?=C3=81lvaro?= Herrera Cc: Pg Hackers Subject: Re: some more include removal from headers Message-ID: References: <202603131615.hwsjm4aq77pq@alvherre.pgsql> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <202603131615.hwsjm4aq77pq@alvherre.pgsql> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi, On 2026-03-13 20:32:53 +0100, Álvaro Herrera wrote: > On 2026-Mar-13, Andres Freund wrote: > > > Kinda wonder if funcapi.h should export tuplestore.h. That'd avoid needing > > adding the dedicated tuplestore.h in so many places, and as the use of > > tuplestore is basically required for funcapi.h users, it seems like it'd be > > fine semantically? > > Hmm. I think there are plenty of SRF functions that use the > value-per-call mechanics instead of a tuplestore (which don't need > tuplestore.h), but I wouldn't be opposed to doing that. I was going to > complain about that change dragging tuptable.h into funcapi.h -- until I > realized that funcapi.h already includes tuptable.h directly itself. So > I don't see any downsides. Cool. > > If we could go back in time I'd wrap the tuplestore_puttuple() for the SRF use > > case into an SRF specific wrapper, but my time travel capabilities have not > > developed, despite no lack of trying. > > hah! (We could still change this now, and while it wouldn't change > older code or existing third party extensions, it might definitely make > things better going forward; the future being longer than the past, this > might be good anyhow. But that's a matter for a separate thread.) Agreed... > > The need for dsa.h and condition_variable.h just is from > > ParallelBitmapHeapState - which isn't actually an executor node and never > > needed outside of nodeBitmapHeapscan.c - so it seems better to move it there? > > > > Added a commit for that. > > Whoa, nice! Thanks. > > Your patch numbering says 5/6, but there's only 5 attached, I assume that was > > intentional? > > Yeah, the last one was about removing tidbitmap.h from genam.h -- I left > it out at the last minute because it's unrelated to execnodes.h. > Attached here. Nice improvement. LGTM. > > I couldn't help myself to slim down execnodes.h further. Not sure if all of > > them are quite worth it. > > The relpath.h one is definitely a good win. Yea. > Not sure about stringinfo.h, which doesn't change very often and doesn't > include anything else. It seemed worth it because it's not used by plannodes.h, it's a leftover from before a05dc4d7fd5. > I'm doubtful about the bitmapset.h removal gaining > us much either (because the really nasty one below, nodetags.h, is > unavoidable anyway.) Yea, I was very much on the fence with that one. > > With all the commits combined very little low-level stuff is still > > included. The worst is probably instr_time.h. > > Hm, that one is worth thinking about. But with only this much, it's > already a huge win. Agreed, we can tackle that one separately. There's multiple paths for it too, e.g. a separate header for the instr_time type or moving towards not not needing to include instrument[_node].h. How would you like to work towards committing these? I'm am more than happy for you to commit everything, but I could also help. Greetings, Andres Freund