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 1vLG8M-00A9ej-0j for pgsql-hackers@arkaria.postgresql.org; Tue, 18 Nov 2025 07:28:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vLG8K-004hKS-2E for pgsql-hackers@arkaria.postgresql.org; Tue, 18 Nov 2025 07:28:13 +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 1vLG8K-004hKJ-0u for pgsql-hackers@lists.postgresql.org; Tue, 18 Nov 2025 07:28:12 +0000 Received: from mail-japaneastazon11021138.outbound.protection.outlook.com ([52.101.125.138] helo=TYVP286CU001.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vLG8I-0008Sv-0I for pgsql-hackers@postgresql.org; Tue, 18 Nov 2025 07:28:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eIBPIur4KK+pt/EQ4JxpD6jJYa8dzcSOAHDj0/PgqbkxaWqTqZiYexgBh+FfVs4CYJVBFkJOmvWeOBxYMHbl5vl6DlJWR8DJ8Hdt+NqPtNNQzzjbG7CvzPBAXhFnYebIj/TNJ4lS4KGr6DixHRn+hCqbzjOj+ypnR8tg0/Vc5MeUUSlP2hJK93rY4mzkLsmEcRz7sKP5B7JBiEzlgRJS7TVQfTAuR4aBdrXqTpBg+k1qK9P547T1uZcUfjI8uapcnOdW/bi9G6YPT++ZKEd8IXNk/j0Giqr3Oc+J/WJ66ka775srGx7ssL4J3wC5Q8BQA7NQqqOO2RefoNvymXb2LA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=C5xCeWLhJ/qlPFIeKPptHsND7W2S8CK9F/aXfF6HqrU=; b=iMJN5tNuX9kMMK4ixxiioZP5q959IoG0iO6GwchgCAqV1JG4bT9NA1xP1xzXjgDn3+tWoqP6FRUpVbzbr/15JHCNtsrUrASVVhTzE2Yi4bLKKynOfni2LMtRlzbhrF8H0lW8WUg4G708cA8aqUJRprzYACPlIx/esjrYcSz7sr97MqokxugxPNtWzbEvkj5guSEuluJD83KLBZfHjt4F6sMSXIL9ueH5XMUfUhJKrv5PjUUIgn7J3v1tYjxUzG/3D6SPY2VQnUxsFS9n41C0bvq+aWPnT5r+qN+A8jnGtEHEXqmvCPL6xmhT5Ply4puXAp+kVnSS7mc+X+uHGE8YDw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=sraoss.co.jp; dmarc=pass action=none header.from=sraoss.co.jp; dkim=pass header.d=sraoss.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sraoss.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=C5xCeWLhJ/qlPFIeKPptHsND7W2S8CK9F/aXfF6HqrU=; b=odcyQpUpS+XUDm8tAuMqN19uPI/ddMALFeZSObY3HqSlMlD79X1p+NjclDftR67/MIVeEV5Z5+55/aavHmjEcfcxwjcRqeWH5du9V3rRO2M2fVCeZqwqDFXmtJM8MtrGeVCmYD3GJ+t81rNDYT4kHkBESOe6ybeNv/xaiQPkaf6mkWPbfLJYhEv/Kv2pdjVoYwQbKRkAsh6idAwzZYlPh7zMrY0qCKwKdjCBBx0Ou8QqnehhhC8ED35htnxEZ4zef/lnEvkX0MTfC4N7u8PHLwWey2gDC6f1ia2ZRyfsbKZObHY6jVmRPm8U2gchVRvOYxXaJ4z7MZdVXHYJOADQDQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=sraoss.co.jp; Received: from OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:189::12) by OSZP286MB2286.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:180::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Tue, 18 Nov 2025 07:28:02 +0000 Received: from OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM ([fe80::a4f:22fd:288:2dcb]) by OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM ([fe80::a4f:22fd:288:2dcb%5]) with mapi id 15.20.9320.018; Tue, 18 Nov 2025 07:28:02 +0000 Date: Tue, 18 Nov 2025 16:28:01 +0900 From: Yugo Nagata To: Pgsql Hackers Subject: Add a berief general comment on BTScanInsertData's nextkey and backward Message-Id: <20251118162801.27cb13408cb3c9dd3a72cf7d@sraoss.co.jp> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Content-Type: multipart/mixed; boundary="Multipart=_Tue__18_Nov_2025_16_28_01_+0900_XZt7R6WNjiY2SCrp" X-ClientProxiedBy: TY4P301CA0081.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:36f::15) To OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:189::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OSZP286MB2160:EE_|OSZP286MB2286:EE_ X-MS-Office365-Filtering-Correlation-Id: 259ad591-d3b9-4e3b-8a2a-08de267401e6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|1800799024|366016|376014|4053099003; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?L3jHmvuSNbIIC34/UkwZeLC2dzodKgAcVbZqLf2kdsdhyJiGFTh1fvzjj8Ef?= =?us-ascii?Q?OoPu0dKl9Dvxb6nfz4j1XJcpENNsABab2HR/JBMQZpSJ+Jnb0mb3VC7lSvpD?= =?us-ascii?Q?I9uTAcp7NDnsx2m7M8VfL+n645gTgEkB/IKjtqkmng/kV48CIw7c9oJ51OOM?= =?us-ascii?Q?B8HHcSbx9xwr+te303/XUO+uz1E32VF8Poi7RH71m9/eAKUYgEQS5i2E28pH?= =?us-ascii?Q?K2Ig1Lkyu9GsnUP3HsSquzUXKsFfuK+zI38wagWwfa9rZUTiyztkR9dKzj8w?= =?us-ascii?Q?1xmcLJbjC4JXVjqMrVZTKGnUjXqHJ/QcT+3sNVMMuDK9jOEuKPOcQc7WhgFn?= =?us-ascii?Q?6IoWi3l20F569y/TpJoDstdPzKjeNOHJFjx8DvV1njWx9Vctf/f/aDrRlrrv?= =?us-ascii?Q?9/TOmpjVFthkjYDwOUepvikmLdl/zs3f7f4ML9qjW1t0C0HgyUMOwXvXHYfm?= =?us-ascii?Q?aTtzuIyTwsZurvpQgkEVrXq1T+77ii+bCgUjtjmLeaFF/gbaB0B6TJcJWIqX?= =?us-ascii?Q?XFLLH22TbidIjmuNrOWrl0yuiAnLOiNMxIkMjcqC13dVB/AIFHfRdeB74/4k?= =?us-ascii?Q?lbRJWssdcYguEnHOn6Ro+03UXyCStxCWEwSN/pqSJySYuWIjo+TCzHEDfAn1?= =?us-ascii?Q?D8xpZm2z9DcfT8Bv+ksWqve9L86c49nNiPXTg7gCbcXXeHOcPoAmdCCs3X/q?= =?us-ascii?Q?PbScbpoyncJoZ2vucKqxZS7XzX50cVEPcVzl0sDtZvj/pTHpio9XFHmud+pq?= =?us-ascii?Q?SzsIuLK10pg4rXBPJyvR1mg59+WDzHzQN+mV+eeM57bpxjP+E+K3nyiSMgxo?= =?us-ascii?Q?Ve94Ca4e01EGDLCO+Uc0jlmBqiusPgYT4bgOcRPVNMldkohNiSVjTuaY7+8c?= =?us-ascii?Q?WxNSX5Y5H8DRE+9wVmkJXrmdu8bxNYdY5bfsY/ITcOpNEYRQSSCJw6bXfQUt?= =?us-ascii?Q?aqBRW42fvx5n+M8/pSTBuTFR/4cbQfvUvVDCoIwmiv6etYlc7d9wXKJMdaGX?= =?us-ascii?Q?B422p3iUxRH9Gtbxvb422BePgH+IndMkhaM1jdCKKcNRNjTa/cscnWNcc5pK?= =?us-ascii?Q?0Fm2ZCOnk9Rx5VzhoGFcXy1SHv6R5PCayIvK0zeAfF8NoJS0WLCoWkGxx8/0?= =?us-ascii?Q?qs9HZ8Pc9hJSqr/mx8VzwupXnLSoR+8szELvg89KX9njZxhGpnwuY/5R7gsu?= =?us-ascii?Q?qeVBaSBfyW6MFdVMaPvxRg2gIR5cD2a+QS2uRMKJctgl1WgINkQxmR5ShVZm?= =?us-ascii?Q?s+t/Uxn2EeD4Jky4PD4QspjtBxo7FMBVhkjJWGYQ/5Wc+R8oyKNBTzQ9oCa0?= =?us-ascii?Q?CBPnMZp5GTSaNq4h/tQU+9IBTtJb8rWKFNo3OMOYTrsSLr6DN385MlPZxsub?= =?us-ascii?Q?lW1eSw1Hqs0uXfXvoRQlSRN2Htz3Zn796qP2SPC2g0E4hW+YPYFYoYkJS84N?= =?us-ascii?Q?YZH75X25IOuWsMT2BZpZBYLDo2n7rOV2?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(376014)(4053099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?8v/3PSFBemQvH1vPaGvuDub/js3rj8Nupb4iBhCRXJZUriRnQjvPSNeZtuPk?= =?us-ascii?Q?hOAt+kcGVpzxl7W5b0T7QJQu6hcjHy/bQGR/dtASSx0gaWiU7ALX3C47okFW?= =?us-ascii?Q?HI+dVjSKgJq64kG/AoU1b1O0vVPJEDA5Sh3hH3Ov0V+LjQMZHDGlVWGfg6gc?= =?us-ascii?Q?hjffRSRBh5Tk1PUsFTwyeCDimc10mDp7e96c8rtSpRRrxCoBrdYUJdNDnU9f?= =?us-ascii?Q?22GjhNCaVndGF3f4XoWU/7ucZdOToQ3Gaz7TEotBsqneWfb/erc2KPShErUc?= =?us-ascii?Q?4VYOQlFEy9HKcmCknmC18it5Jb4co93Dq47YJzxMu6rpnb8S6yZxAa5PuU6j?= =?us-ascii?Q?ER2rMdkRYHZK9qCKiJC0KOKP2jmJWQo7QMUQ3IERW/7Q/UY2NHKn4Gt58GQX?= =?us-ascii?Q?v8Hy/0JskV90xeGOrgHpnznlsPRWup5QyOSs14QMuocFOUH3rtTf77CntBwp?= =?us-ascii?Q?lCDIEx9DZCk4p3ZdrXotRylkCy4Mqc7ysyG+W1sNjw/dtCHOqc/dREmrtfXs?= =?us-ascii?Q?PBJ9GpM8ChGgFSWfx9+56Uv+zsVu7pI7NH8IUfDG05rO8oM19ww6SRJnbvgd?= =?us-ascii?Q?N+cwKmuF9IJnTuljFqkT3Tvy5JaiQ6KPEMKOF7GrAU/u2ocFxZcM4Nitn8o2?= =?us-ascii?Q?xN6G2gLKUImO5+8PpnU0Yp8pxMaW7lmiviiAebYjpo3RF3Kcc0FqB6hdmDVa?= =?us-ascii?Q?I9h1AvV3KaTnm2sWJstbkgr7owbbqkv7bHKjUR46urGRfKn9X8G0IorUAG57?= =?us-ascii?Q?+6HEfHxrVESJBXMkhWnf0DPY6EdCs2Za6LSmoe4Dk6vUoMUFNDBGpN+N3F7S?= =?us-ascii?Q?1iUcczKZikx/QpYC47v8cQKGYoqQr+xpst2pENS4JWm8z0++HDKbrwEOWOpj?= =?us-ascii?Q?JbNufTnHwiI7jmP/CnNwX6NG2rDkwWpOAxqnB0tpoNxxl+DFzThIbma4TTps?= =?us-ascii?Q?42nEajg8k8Bs10chkzbQlMz2MmJj+4hYThiVpWO8YhrICzM/9c+DQX3Rmvcc?= =?us-ascii?Q?44Vyf1ahTPZ3RAElKBqCkjsxHEK7aFGyhTcNyFaRp4A6WK42Hvs0k8HI4hyz?= =?us-ascii?Q?zkma+7kpCFPasi6p9o8R4dGfV7QdAVkFw0GUeUbZVoJjBdAN0tG1WJhyjn8M?= =?us-ascii?Q?IL7c+XN1u4HW7NnUL2i9BDwfouT2SYjPOQfTw1u6aSDikLJ1H/Z4cLxhMIbT?= =?us-ascii?Q?L/DyTbsJsqGEiPnasu6DZjKeCCZG1qztrDopHazUnAZ5B1wKL8OQjbEu9Rwi?= =?us-ascii?Q?bWGsq2/3NzIXTPZbj3Q0AmwxSw305p8I5G59BQYEetPfqGO1D8bkBUeijIkQ?= =?us-ascii?Q?M03AjSOSCm7gqat1YfDwqwJhyzq9F24eqdWdrQzVK/uqtTJo816zCjkhDzWb?= =?us-ascii?Q?oqDvtwuR5PO3VggQyFhGw+dJVRA5WdZILWbCL6GovzrLh68O+i8uJ3gaCLb8?= =?us-ascii?Q?SPGt2HW9Lta3egmxzhZsQPADjAA9E14T1V3pNAwb5AFA9uRAym25yNJExhNX?= =?us-ascii?Q?7CdgfEsU09aj07Lxigbk153lBtN+KGpa+vtaMc5Rqu0zN5Ihfa9V4hfU3/Ra?= =?us-ascii?Q?Xg9eaDS2VVEcZT/gmW2mwg9+McQV9KE5UXHGnUR+YLza8dVZbxxhaXRz+XSx?= =?us-ascii?Q?F3lI5CzJKGtBbfSPUbyN/rLHvRhUEbDG93jzTH4FVyoY?= X-OriginatorOrg: sraoss.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 259ad591-d3b9-4e3b-8a2a-08de267401e6 X-MS-Exchange-CrossTenant-AuthSource: OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 07:28:02.4642 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 75db6c32-352e-4063-ae79-cafb8623f6db X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: h3gmf/+d+WlLO/sDi5AoQPUxvMnNDAGBha3PVpRhTSYcnFd3ew8h0/U7FfQbWXJ3ykkCWfDpp2cl2enM2TnshA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZP286MB2286 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --Multipart=_Tue__18_Nov_2025_16_28_01_+0900_XZt7R6WNjiY2SCrp Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hi, While reading the nbtree codes, I noticed that the comments on BTScanInsertData no longer describes the meaning of the nextkey and backward fields. The comment curently only says: * See comments in _bt_first for an explanation of the nextkey and backward * fields. Detailed comments used to exit here, but they were removed by c9c0589fda0e, I guess, because the semantic changed when the optimazation for backward scans was introduced. However, having a brief, general description here is still useful for readers. I've attached a patch that adds the following comment: + * nextkey determines how the scankey's boundary is interpreted, and backward + * indicates a backward scan. See comments in _bt_first for a more detailed + * explanation of these fields. What do think? Regards, Yugo Nagata -- Yugo Nagata --Multipart=_Tue__18_Nov_2025_16_28_01_+0900_XZt7R6WNjiY2SCrp Content-Type: text/x-diff; name="add_brief_general_comment_on_BTScanInsertData_nextkey.patch" Content-Disposition: attachment; filename="add_brief_general_comment_on_BTScanInsertData_nextkey.patch" Content-Transfer-Encoding: 7bit diff --git a/src/include/access/nbtree.h b/src/include/access/nbtree.h index 16be5c7a9c1..581e200a3cf 100644 --- a/src/include/access/nbtree.h +++ b/src/include/access/nbtree.h @@ -774,8 +774,9 @@ typedef BTStackData *BTStack; * bit, but may not when inserting into an INCLUDE index (tuple header value * is affected by the NULL-ness of both key and non-key attributes). * - * See comments in _bt_first for an explanation of the nextkey and backward - * fields. + * nextkey determines how the scankey's boundary is interpreted, and backward + * indicates a backward scan. See comments in _bt_first for a more detailed + * explanation of these fields. * * scantid is the heap TID that is used as a final tiebreaker attribute. It * is set to NULL when index scan doesn't need to find a position for a --Multipart=_Tue__18_Nov_2025_16_28_01_+0900_XZt7R6WNjiY2SCrp--