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 1vzSy9-0011sf-1e for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Mar 2026 05:15:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vzSx8-00DriN-23 for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Mar 2026 05:14: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 1vzSx8-00DriB-0V for pgsql-hackers@lists.postgresql.org; Mon, 09 Mar 2026 05:14:50 +0000 Received: from mail-australiasoutheastazolkn19010001.outbound.protection.outlook.com ([52.103.73.1] helo=MEUPR01CU001.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vzSx6-00000001EXh-0prR for pgsql-hackers@lists.postgresql.org; Mon, 09 Mar 2026 05:14:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wtV56iYHGNFNt4Mxbld5udO5FJrymVo2QWxx0NaVdbDb8ENLE/UD00R6l0grtUCK4yMaZ5qdn629/2c+MsyDD0etGUKfP+wFUkFNaRaVpJmnQ+LnsOiTQWdzrSQfxu/p4f7iexfFKT6RpKdFjisyDtuO203yfPbQneXXm0JnklL/MS5nAYYYg2+8EAMdF4IcgEn11WdSPRL1qY2PapyEajtQN0kJmQsKv76uE5Dz5WkSO3HzESFCNnMz4lJa00dM5AMrzXoARtn5TWS7e+GgywQAeqDa3YrKJt7gLs6z/flt/c/mnJ/99ZmHlT5vWCUjAMlXzag3ZwzH/3gOBQsE5A== 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=+6i5LFbYZDbM3aHPd+MbNk4HolIsvNrllPKZF2hh5Bs=; b=xXAghXpZoj4ThxVlv9C6I/ENCDh6A4Gp1gKkFcoM2oYqd2gtpcK45PwBQMXZA7kpSkQMqOmBQEytbjI2zxD7MNCa/3Gdl4czChpQdU6o0TvhJo4HJnA7fMNWT0rdO0YjI0PRbRccU2xZ+goeCc4oPvcabHQrgpM+K0J+MUZNnWmakNDLDcXWsxXigc1AKVohVN4wN3SgW8YMheI3ilyV18E9mIjXkz4xI0RS2MOoCuoSBe8sxVXhUDgA95DcJBPogsQIkrkRkickk2K19j/z217uoGa7w1eIs9GeT4QT7hGw9SZ18sU0K5D5GH+9WQeCXZl0VbX1MGL+hHVrQ8/31g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+6i5LFbYZDbM3aHPd+MbNk4HolIsvNrllPKZF2hh5Bs=; b=lNJdGkNKC7+1Rocalkepylli9xyoRvYNMbErd2FnlMroRX+8NKviY4JbbECErn+o+iy7SQgq7FppwYW/w4dd5B+NZJQADXZ6sVJZww4bAuZkyo5GnYRChKVof44iQVTxaIdyQaynYu6b0/vzdJjkaLcDuhzwKJY5AfMLALfIwdvZJTbh28pioSE81bNX87TJhYLewSHTIoqL6L6UOv7cnDRDzc0ELaWuHrg5gu6vonillhgayEFobuxixP1sC8gxn2vWN6MtD6EQxFG0mw1JQSeP15FqwtEB04+lTsjI8Npf2ZY2q7ucNOaWw3duSYqT0iHYDSN3lKKec4sNZu64bQ== Received: from SY7PR01MB10921.ausprd01.prod.outlook.com (2603:10c6:10:334::16) by SYBPR01MB5440.ausprd01.prod.outlook.com (2603:10c6:10:e4::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.24; Mon, 9 Mar 2026 05:14:42 +0000 Received: from SY7PR01MB10921.ausprd01.prod.outlook.com ([fe80::7908:e00:4ab1:d120]) by SY7PR01MB10921.ausprd01.prod.outlook.com ([fe80::7908:e00:4ab1:d120%5]) with mapi id 15.20.9678.023; Mon, 9 Mar 2026 05:14:42 +0000 From: Japin Li To: Richard Guo Cc: Pg Hackers Subject: Re: Convert NOT IN sublinks to anti-joins when safe In-Reply-To: (Richard Guo's message of "Sun, 8 Mar 2026 17:16:58 +0900") References: User-Agent: mu4e 1.12.12; emacs 29.3 Date: Mon, 09 Mar 2026 13:14:38 +0800 Message-ID: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P301CA0054.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:36b::14) To SY7PR01MB10921.ausprd01.prod.outlook.com (2603:10c6:10:334::16) X-Microsoft-Original-Message-ID: <87cy1dlh35.fsf@hotmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SY7PR01MB10921:EE_|SYBPR01MB5440:EE_ X-MS-Office365-Filtering-Correlation-Id: e0c70e9e-ca2e-4ceb-5967-08de7d9ac537 X-Microsoft-Antispam: BCL:0;ARA:14566002|24121999003|6090799003|22091999003|5072599009|19110799012|23021999003|461199028|8060799015|15080799012|40105399003|52005399003|3412199025|440099028; X-Microsoft-Antispam-Message-Info: =?utf-8?B?bkNRN0YrWDNrTGJralZWZ29ZbmhPUGJxSGhLUkdxdkhXL1Q0akx0MmZTTVA0?= =?utf-8?B?TzM4c1VYNi9FbFIrN1FmQkppRFdUVXJRbng1RldaOEtWNkNmYzNuTnJMeHpB?= =?utf-8?B?UEZIaldkQWFkaGdqQXVaL3ZrOHNPZTZudUU1VS8xaVMxR2FVbUlEZldJTGk4?= =?utf-8?B?K3RhQU9EVzNUYklhMWEvUVl5TktlM0k4UHZlOVlxSzJwWTlQOVhiNnAwcFhx?= =?utf-8?B?anpZdlk5QUs5Y2JMY2JzazFJNitTTStSYjc0eWdJVWc4RHNqVUNEa2dxY2Er?= =?utf-8?B?Z1VZOHZ5cGJNcEN3OTZaSTZkYldLQVp0WGRBazdkUEdlaEpWczlxanFwMFB4?= =?utf-8?B?WEMzT25tOTZYSlNQTmdzdDU1SW50YVNMYkU5TGg0MG1LMEt5QWtFaGlFUzg4?= =?utf-8?B?WHdqZ3NiazFpRU1LbmJsRWk3cEFkOXpyUmR6THBPbW9DM3IzUWM3ZkV2MDgr?= =?utf-8?B?d0ZrdFVhbklTUEFZRmh2aFhPT1ArNGFxL3dPSitzc2hkSlowRDFCcU1NN0Z2?= =?utf-8?B?OUhPUmszaUF5SitJdGk5YXhyYW0vZ3d3MXdlVXdoOEdTT2NhbUkzV3g4RnFF?= =?utf-8?B?ZTh1bVEwVUN6eXlSZ1FtS3dVaVNQWnBjWW1ZTW1kWnFBaEtVNHExbjUyaHRF?= =?utf-8?B?c0U0ZmpyWGJBMUxHd3FqZy8remtSdE1KeHFhS3BkSElLWWtCTUJDN3NIT1VZ?= =?utf-8?B?KzRqS09jVzdOd2Foc3pJUUpFSUdxRis2ellkUUR3NzRleW9EdEtPRnZTd2lu?= =?utf-8?B?R3NmTTJucW8rWGI3ZzlaSW5Bb1dCdlhTQVFtOW9FeExqNEwwVmxPVm5mNyt3?= =?utf-8?B?S3JVVU5jYlpGS2h0S0ZxTW1WV2c1NDZHOVE3dytTVzkrQjBkZkpEMWlobURH?= =?utf-8?B?ZTROYisxZ3dKZi9CRUp1OXozYTZpWkdwUnJmSm1yenBWbWxKcXVEeksyNUJi?= =?utf-8?B?aWVET0k4eVZ2QUZUUytDaW5qZTJuWm9Vb3YxelRKLzFuRVlpN1IwbmFveTdt?= =?utf-8?B?SENCVTlxZTVERXVaUlNhUFNmSXlDaVo5L1NzQis2WDhpZDYzcnNFTzJ5Nk0x?= =?utf-8?B?RWcxYWdRbHYvNmJhd0JIU3d4Tkk2eHlhczRBRnBJYkpEekE3cXRybEJJQXFO?= =?utf-8?B?cFpTZDFDR3pOSWh3K3VuSVM1cXBmamYxdDVSbW5pcHA2eUpuaVpETWh2a0Na?= =?utf-8?B?eDN6bkNDYitSYmV3UmRyVHA2Sm9BTldZZDlJaEt3RzQ5dnp5VXdkSkhIRmt5?= =?utf-8?B?dUFwa3NnazlQVldHa0RJSDRubmNqR0t6eDF0Y3VHcmdlb0FSSXFsbC96eWZa?= =?utf-8?Q?EEKqsqN8C9PaXHkCav/5qRz7BQ5IlGCFR8?= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dFBvemFhM05oSTMvckZXaDJHa1loSjVocGNmRHptSHJNOEtUK25JMzZLUURv?= =?utf-8?B?Vy9HSWYveWJoMEljSzVMcjZMOXFNRm9vcTFpdFQxUm1ldm5WaDdOU1lMT3Rz?= =?utf-8?B?dkY0Ky9vL0FNMkJxVW1QMURYQXBJVFE5eWNyeWl5RlVNZDNnOU9Ua2RNUkc4?= =?utf-8?B?R3cvb20xRDc3Sk9zYzBSWTkyOVVVZUVtVnBkQ3lFeTVQYUhsZnBsSUtJRTVD?= =?utf-8?B?bnVvMlNDVUZQN3pMb3ZVZVdiQzI3aXVLMXdXR0Y5Y0xBWDJtMnpzanJKOWZh?= =?utf-8?B?blZoWXRCVDhxamx2dFBWNkFJZnBUTjdqU3R2elJFTSs2OWZoZ0wyWmZmVytG?= =?utf-8?B?MUdXM2Y3NDRyd0ZmZDhSTTBjMEoybk81REVmb203bEdvSXNNcVh0RUk3amNo?= =?utf-8?B?NmVqZEF2bzNDRnkwL25jRXNKZTRDano5TXNDcVNtU2h4WEM4U1VyVTRXMHFB?= =?utf-8?B?WVA0RVFGenY5aGNkWFJCeW1KTGJXQVZrWUFiRnlEQy8zNGxUYXg4c0hXMm85?= =?utf-8?B?L0NzSVowb3dPZHcrSUdxS0t5Y2pqWm92dFZhUlc4a3RDNG4vTHdkZ1A2M01n?= =?utf-8?B?NlpvSHYxVDVYZy9aUFViMTRmejR3b20xQmlQbGRpZUkwUGJFaU4rbE05WFU3?= =?utf-8?B?RlFZS1dOQjJRa2l3S1hTUGNuZVJ6ZW92ak9iMklBS2doaCtFQU1vMDRxS3ZC?= =?utf-8?B?QkZwV3BNTWY5WkZCbFo2cWQvODRrbitMTFhjdWRDR3k2NTJzQkNteVh3bWd3?= =?utf-8?B?TzhJcWY1cE1Pc3FUT09ZS3RGb2FTcndpNGpiZldTMWpZM3dGZVdIelBOU0or?= =?utf-8?B?QmpRcXhjN3A0UmkwQ1U5c3pGMHN6WHRFSTlpU21mSyt4NEFUNzJNdjFadVhL?= =?utf-8?B?bUxjVk9aZjNJSjFiR3dpNWl2WTVEZUlaNklUVExHZm9HTThRYVFsTXI4cnVI?= =?utf-8?B?ZEg5bmNKbk1IczhYVmIwTUFNalkzVUNwNllJTWIrZkwycTVGd1dDVWdNZDEr?= =?utf-8?B?V2V2NTh0cmRHMjNveDE0SnVlWjRBQmFTaTlrYWJIODVmL0pkclZDMHpGd2M1?= =?utf-8?B?YW5IQ2oxS3dvaFAyOXU4TEl3T0dnLzErNWMvMjYrZFdBTUF4Z2lnS3czbDl3?= =?utf-8?B?MjNqbmJYZlBQZ0lUSVN1OVRnc29LeVRyaUpCMitJMzNkeVVIdndOMm93OXZV?= =?utf-8?B?VFVLZmlVZlYvNSt0U3EvaWNZZytFNHJzdks2NzBTY3c4anpNcVhmQmVIV2hM?= =?utf-8?B?elVtWmtzaWQ3cE5Na21BdFVKVEJiNXpVbzZiUWI4TklZWHVic0hDeW1HbDcv?= =?utf-8?B?ZUN1ZTZKTHFuYnpja1crbjlUWjRkQ2RqKzVrWVJMTWlsTDM1SU1jNEVDODlx?= =?utf-8?B?L2VVbTJPUlNkbjQ4b0Y4WElwTG90VEdiYWZaMncrVjhMeFdHYnFUOFI0TGh3?= =?utf-8?B?ZjVHSzhneWp4a203WWlNYnVrVnN5SE1Hd3ZFQW5KTmM5RGIxTTdFaTZIejNB?= =?utf-8?B?dERxRTYwY1JXS2p5WkNKWWlZdVMvL2VrQUJQOU5zWlVGaWh1YWkzUXlEdTY4?= =?utf-8?B?Y2drcm56ZzdoMlVLZ3ZvZmo5bC9paTBKbVNMekJMK0FyTWZLN3BibTdUYXV2?= =?utf-8?B?Ny9Ld0xBUVhUMUM0YlZmVktkSXNCbUcwOElONWZaWTZsRDdISXBZelAvWHBZ?= =?utf-8?B?VFF4UXdjRnJyeVB0NDNYajdFNU1mK01rblFCa3FmWXVsQWhrUnlhcXlKcVVM?= =?utf-8?B?SXpFQk9YcWVCL1doaTRXSnd6K0F0S043VURqMTJDVkpNZzl6QWN0blVLVmJO?= =?utf-8?B?Wko5OUcrbjh0VmVyTWNDQ09kUUdkMHBCRS95Y1BWdktQb2I0OVkyT0xDb2dC?= =?utf-8?Q?EpLq7/IXmOAAg?= X-OriginatorOrg: sct-15-20-9412-4-msonline-outlook-feddd.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: e0c70e9e-ca2e-4ceb-5967-08de7d9ac537 X-MS-Exchange-CrossTenant-AuthSource: SY7PR01MB10921.ausprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2026 05:14:42.2213 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SYBPR01MB5440 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Sun, 08 Mar 2026 at 17:16, Richard Guo wrote: > On Thu, Mar 5, 2026 at 10:57=E2=80=AFAM Japin Li wr= ote: >> Just a quick note: I think `foreach_ptr` is more appropriate here than `= foreach`. > > Agreed. > > For homogeneous lists, it is better to use foreach_node so we get the > additional type-safety assertions in dev builds. For heterogeneous > lists, we should use foreach_ptr. > > Attached is an updated version of the patch that replaces foreach with > foreach_ptr or foreach_node accordingly. Nothing else has changed. > > I plan to do one more round of self-review on this. Unless there are > any further thoughts or concerns, I'm hoping to commit this in a week > or two. Please let me know if anyone spots anything else I might have > missed. > Thanks for updating the patch. LGTM. --=20 Regards, Japin Li ChengDu WenWu Information Technology Co., Ltd.