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 1wJ2I5-0000bZ-01 for pgsql-hackers@arkaria.postgresql.org; Sat, 02 May 2026 04:49:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wJ205-0000WK-2U for pgsql-hackers@arkaria.postgresql.org; Sat, 02 May 2026 04:30:45 +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 1wJ205-0000W5-11 for pgsql-hackers@lists.postgresql.org; Sat, 02 May 2026 04:30:45 +0000 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wJ203-000000003hq-1f6b for pgsql-hackers@postgresql.org; Sat, 02 May 2026 04:30:45 +0000 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-671dad7cac8so3035777a12.0 for ; Fri, 01 May 2026 21:30:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1777696238; cv=none; d=google.com; s=arc-20240605; b=G/2CMhoWxu6SfOoI+bG/yB6OVX7N1Qm2A3MFZctrjgGACJ50G/RHvT7acH2NtPh2Xq KPdGe2nrSFrtRmoNMP1HwIV2i4ggqT+b8su6SJ4abutBKUtx/Ow3j3y2Si1ElY1GZzRO +lW0rJ2Y85qa1Drc6agO/GX9Nw6U49GLJdIlYtyYxHNIK6ZezICNyTob1WCkAfGS0P6m k3/okgFeP/1EOU9M0POhp7NpoBa7clF3p41Nd8X/4Jww9CfyUd8q8SfHhTkYstgIwib5 6JywHTQTYxqAMnH8t69P1c1HaJmjIOCI/RUuQVMkzd8aEPwMc0hf93x5Oikg8m710Pe8 1n2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:dkim-signature; bh=F1wCOtb8A0CbJE0A5AYA12F7aFURNuVV7cH2N5fKVUM=; fh=YvGJaZSgB5s1hpr5YBD/CyF+z82fpJdzt5LQsaxxOjc=; b=OGfO3Y0s/PA4E+1Z8SxAOtw/BrT1dzAQhn36LBmc/MtUh1CGKZ0IKbOIAEMH4hD3+/ mn5eF5Hi7PcJR8uwQGi2qumNMqCcqy1IfnAXAnQSQkaxCnEfmP9m6Um0HLV8Z3Q5sHz5 uD0tItvjaWdByyBxzQSf4b4wEdexRMyRQQQ4D6u6aBXvWiL9ELjM2XqWFhPEYIKLaY0t ugpyuGZW1kHUmdp95UcgB8F8FS54a5eqoTraDptyrmKPZxjRotsSWF9ev2GKpRULYMf7 mNKi2XOBEUirWI1q7koFCxqkjbdaWJTXzNOfUQeG8akQnWhUq6uTcDdy+w4XxW9ZYELa fh0A==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777696238; x=1778301038; darn=postgresql.org; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=F1wCOtb8A0CbJE0A5AYA12F7aFURNuVV7cH2N5fKVUM=; b=aARWgtDRF8Fn4/X3euBKzD8xVKp3YpXGmrej08gmCrd+EIRQUcNdHXVKrXRP6nVdHU ErtT76VIQo+CVo3hiKInaoLWxXNIjQM2bCpS6RXtCYrhe1tbLYUd+p7S9c+KdP4JusPk rPzBKzWn6fGS/Uuu+jmrw6EPOTaIqnMZ2L9ZLVtO8ZKTSG0d/qF84Nns261mUWHNT9qN CCZ0LUkdoF56JflC83hZP8+GjGx/hMIyiYBr1siPYVb72mdbPQvB10FMQDPrMBsQY/3W UGMdRGSd12oIncDopgh8TrVhJ4b1Z8059nbstzZAFNJdWClnz9wj3RKSHEr3SYaiu7hJ CtzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777696238; x=1778301038; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=F1wCOtb8A0CbJE0A5AYA12F7aFURNuVV7cH2N5fKVUM=; b=p0BVc8EET7ZUdNj5XnKDwe8Q0W1k+UzcwkirS7F5gQ7El6AKc+AkkTPT/B5vt6nSuS Cz8RGgE4dwNYabrUDlTk4aYr+8aKNgLOWqd4BC76PkQCEZH9Wk2opJY8thFWfoMzG0id uMgm9skIXNhQx04gQIhD+U0cwTmGzcAvQe2CpARQVGRk7R0CqssR7TyFftS1NCyaFFq9 O/7+EJCyJGQYiW4HdwdMbl1E148zZOTt/pspprgMdtXwR6kYhWK5TGVttFCViAzxF9SU O9kjOE2Sh+FlUSWj3kqkrztd81+956HawkidMQnB5WRSo5nULDLa7Oe8N70fJY0P5Ii8 hQfQ== X-Forwarded-Encrypted: i=1; AFNElJ/upVrVDRxWbjADHx2/4+ChSMcvtAFpV81taGm+P9Ox5AQ0cZMzwBUN0Je1scqwh1rmYtsar37t+VSH7Yu/@postgresql.org X-Gm-Message-State: AOJu0Yx/FOxT/ASV20DoMhqeLtbm2imsUrLvPlgFsBl1embcMGM7icPL 6v1DxWo4d/Wxwghq6fxs7h5oNgqm+toTk0t9IpTdZbTYTkK2xDnD6ppPDH8SZTQjgSIYpS365T/ F9+DxMmeI2wRV3qvcNrKF1oP3oHOnOBA= X-Gm-Gg: AeBDiet9D4Q25o/4CXZEf1pouX2Jgx4QJRPnFVzZN3wVYbGPwtQlFcNLonSXeQ6qZU9 Om/nMXPTY4Q0YXxXfP1cSsz3pgS9SiDzQBhd9PZMsnAoFi+LnBubm69TvRROFjBCSjhu4W9ASRI 8qvXAHYhaccozN2elCTmoM4wkmBBKi8kUhovidQwcd8rEIzvh2EBGVk2wFswMcI4aA7B1SIF9MY Kd9uBxnqyG50QHND96r73M+Qz5banEnL3T+x5BPsFwbK+K8vwXSUm4cBWrGq+KQUOXEV81nBcXg aklrIlo8Q7vOb7+wnsgQ4tLMmDk2gKgnMHwKu6t4DeyJNbNDTJ479erCygPeZA== X-Received: by 2002:a05:6402:1505:b0:66e:56a2:b67b with SMTP id 4fb4d7f45d1cf-67c1aea6b93mr416603a12.20.1777696237458; Fri, 01 May 2026 21:30:37 -0700 (PDT) MIME-Version: 1.0 References: <20260427.174220.1939160662649810289.ishii@postgresql.org> <20260502.131718.1177156404282376744.ishii@postgresql.org> In-Reply-To: <20260502.131718.1177156404282376744.ishii@postgresql.org> Reply-To: assam258@gmail.com From: Henson Choi Date: Sat, 2 May 2026 13:30:25 +0900 X-Gm-Features: AVHnY4Le5XTu1M6WIqyjj7YrhdUCE8Ep-dA7cGj-TEOFebzlEIP4stXRvdCbk3g Message-ID: Subject: Re: Row pattern recognition To: Tatsuo Ishii 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 Content-Type: multipart/alternative; boundary="000000000000c097ec0650ce2805" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000c097ec0650ce2805 Content-Type: text/plain; charset="UTF-8" Hi Tatsuo, 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. Regards, Henson --000000000000c097ec0650ce2805 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Tatsuo,

I know in v47 JIT compilation supports PREV/NEXT. What about
FIRST/LAST and compound forms?

Yes, tho= se are JIT-compiled too in v47.

The JIT side only deals with two opc= odes -- EEOP_RPR_NAV_SET
and EEOP_RPR_NAV_RESTORE.

FIRST/LAST and= the compound forms differ only in how
ExecEvalRPRNavSet() computes targ= et_pos for the slot swap;
the opcode interface and the call into ExecEva= lRPRNavSet /
ExecEvalRPRNavRestore are unchanged.

So 0018's J= IT support carries over to FIRST/LAST and
compounds without any JIT-side= change.

Regards,
Henson
--000000000000c097ec0650ce2805--