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 1vtArh-007G71-1m for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Feb 2026 20:43:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vtAre-005ktI-1d for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Feb 2026 20:43:10 +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 1vtArd-005kt9-2W for pgsql-hackers@lists.postgresql.org; Thu, 19 Feb 2026 20:43:10 +0000 Received: from fhigh-a8-smtp.messagingengine.com ([103.168.172.159]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vtAra-00000000DHd-0z8p for pgsql-hackers@postgresql.org; Thu, 19 Feb 2026 20:43:09 +0000 Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44]) by mailfhigh.phl.internal (Postfix) with ESMTP id 4903D1400098; Thu, 19 Feb 2026 15:43:05 -0500 (EST) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-04.internal (MEProxy); Thu, 19 Feb 2026 15:43:05 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=anarazel.de; h= cc:cc: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=fm3; t=1771533785; x=1771620185; bh=R6A06FF1ZS wzIooLjikxC+FqP78rJmRoXOZtdMzJQaI=; b=PJAv1nHYUTWYQ7eAMLC4UWDjul wvEFjADL+KbVISobtOIxIy54cjNFZSw5BeSgnCQW8zq/y07NuGcHD07JCj9qzawM Yqj8r2bdqCFkajEXNHdVhFLx6MYoeE+pA5e9EdIm0svi4A1CgpV0leo8+yOkKUOM 8ASSYcO2QF0ScCRPT4HOSERE+CP5PGJyMO152rrSIDZ10iE2J7jcpJZvaa8PF42f O0/ExXecmVrAlOqDhnUhsOdSs7TjIKcjnpQXrchnEUy9UVkeS87gTgyNZM6xt++b SuRds1GVzPXFVvy9XIA5yBe4mKKl7a2HS4jYmpIKRIEGbAShS/QIp1U//jCw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc: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=fm3; t= 1771533785; x=1771620185; bh=R6A06FF1ZSwzIooLjikxC+FqP78rJmRoXOZ tdMzJQaI=; b=gr3kGjlX69GRwUfNGvTCJ26ive/lbqBIPqB7wwzPbWe0ZPKtwdo sBxHiHnpcEhtJGGioPg6Su/QDeUEDzf489HsleQCn/IZUnFdLv9ef+62UIocjSjR Tu7nts7UbX/WDZsuvykH3R2bCJrDpFQpQ9/C9ppdQNjGU3Si7CXCAY5UDOfru6qM w9HKHVyFsrU2VM3YIY9f8BPCtFAso7NSC2BEQVF9JBCpYmXc8AuBhvbkIRuaY3ig 9/aka9ZSyC383r58afVuNQneiryKtdCRsjTm690nhVrnviEloj3xqX391sMXZzOb eyNm56ySLLEYW54X6Iqml80UtHauKgQJVFQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvvdeiheefucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepfffhvfevuffkfhggtggujgesthdtsfdttddtvdenucfhrhhomheptehnughrvghs ucfhrhgvuhhnugcuoegrnhgurhgvshesrghnrghrrgiivghlrdguvgeqnecuggftrfgrth htvghrnhepfeffgfelvdffgedtveelgfdtgefghfdvkefggeetieevjeekteduleevjefh ueegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheprg hnughrvghssegrnhgrrhgriigvlhdruggvpdhnsggprhgtphhtthhopeefpdhmohguvgep shhmthhpohhuthdprhgtphhtthhopehgrhgvghessghurhgurdhmvgdprhgtphhtthhope hpghhsqhhlsehjqdgurghvihhsrdgtohhmpdhrtghpthhtohepphhgshhqlhdqhhgrtghk vghrshesphhoshhtghhrvghsqhhlrdhorhhg X-ME-Proxy: Feedback-ID: id4a34324:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 19 Feb 2026 15:43:04 -0500 (EST) Date: Thu, 19 Feb 2026 15:43:04 -0500 From: Andres Freund To: Greg Burd Cc: Jeff Davis , pgsql-hackers Subject: Re: Expanding HOT updates for expression and partial indexes Message-ID: References: <5165C147-B476-4E3D-AAA9-11C0B966FC4D@greg.burd.me> <9394564A-5764-4DCA-8845-8AE102DE61DC@greg.burd.me> <97769442-2ed7-4fe0-a393-7e2b5ff7ff58@app.fastmail.com> <3e1b9075c92808a7356e79087ba51910e5db5a30.camel@j-davis.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi, On 2026-02-17 16:15:02 -0500, Greg Burd wrote: > > Why does simple_heap_update() need to do the HeapDetermineColumnsInfo() > > inside heap_update()? It seems like you're trying to avoid doing the > > same work the executor is doing to determine the modified_attrs bitmap, > > but either (a) the work is cheap; or (b) the work to make the bitmap is > > expensive. > > simple_heap_update() is exclusively called during catalog tuple updates and > does not involve the executor at all, these are direct calls into heap to > store catalog tuples. Just FYI, there are probably a fair number of extensions using simple_heap_update(). That number used to be a lot higher, but I don't think there should be a hard assumption about it just being used for catalog updates in the code. Greetings, Andres Freund