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 1wJ2TK-0000u1-07 for pgsql-hackers@arkaria.postgresql.org; Sat, 02 May 2026 05:00:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wJ27v-0004bE-0L for pgsql-hackers@arkaria.postgresql.org; Sat, 02 May 2026 04:38:51 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wJ27u-0004b5-2g for pgsql-hackers@lists.postgresql.org; Sat, 02 May 2026 04:38:50 +0000 Received: from meldrar.postgresql.org ([2a02:c0:301:0:ffff::31]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wJ27r-000000000KA-2hFC for pgsql-hackers@postgresql.org; Sat, 02 May 2026 04:38:49 +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=GkZ8ZXJ91jpT54iOCD2uB1Hnis8mQ/BiRBFtXJM/FRs=; b=rQkIz92k5vLC+RzjTLnpBBbAEZ j8PSuf/kcJNXl9Xt15CAzfq0QeGaclP1qUkYjhEj0uS22kYVQsReckTIGZ9yNibheaSs6YeBK8xgu edKZq+e7LO91izObPuzZ2VDxuqfrC2cFFoYv9lHM6+3eYUhv7SvCuHkziuf6VVsp51LtfllpKvJkI HdE1N68TQ9s0dIUbnNL4Hs8sm1VcpwXwZnzhdKh/f9+j4Xv+IzkNPuP/hiu4Fh9wVdwUPTm3oHWz9 6K6sF1jKg7SHBjlEAAtXiHQrFFrdcjeD9/YN6SPPO62rzMY61CdVNiDnW8uY/sUdeIVZflhH74mca JvGIIkNw==; Received: from [2409:11:4120:300:47e:d4b7:9a1c:43bd] (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 1wJ27i-000D7g-2k; Sat, 02 May 2026 04:38:40 +0000 Date: Sat, 02 May 2026 13:38:28 +0900 (JST) Message-Id: <20260502.133828.1601537265248588543.ishii@postgresql.org> To: assam258@gmail.com Cc: 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: <20260502.131718.1177156404282376744.ishii@postgresql.org> 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:47e:d4b7:9a1c:43bd (failed) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi Henson, > I know in v47 JIT compilation supports PREV/NEXT. What about >> FIRST/LAST and compound forms? >> > > Yes, those are JIT-compiled too in v47. > > The JIT side only deals with two opcodes -- EEOP_RPR_NAV_SET > and EEOP_RPR_NAV_RESTORE. > > FIRST/LAST and the compound forms differ only in how > ExecEvalRPRNavSet() computes target_pos for the slot swap; > the opcode interface and the call into ExecEvalRPRNavSet / > ExecEvalRPRNavRestore are unchanged. > > So 0018's JIT support carries over to FIRST/LAST and > compounds without any JIT-side change. Ok, from user's point of view, PREV/NEXT/FIRST/LAST and compound forms are all JIT-compiled. I will add it to the "major changes" section in the v47 patches posting. Regards, -- Tatsuo Ishii SRA OSS K.K. English: http://www.sraoss.co.jp/index_en/ Japanese:http://www.sraoss.co.jp