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 1w0UC6-001wou-02 for pgsql-committers@arkaria.postgresql.org; Thu, 12 Mar 2026 00:46:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w0UC4-00Ckl2-1C for pgsql-committers@arkaria.postgresql.org; Thu, 12 Mar 2026 00:46:28 +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 1w0UC4-00Ckkr-0U for pgsql-committers@lists.postgresql.org; Thu, 12 Mar 2026 00:46:28 +0000 Received: from mahout.postgresql.org ([2001:4800:3e1:1::227]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1w0UC2-00000002Dp1-120M for pgsql-committers@lists.postgresql.org; Thu, 12 Mar 2026 00:46:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Date:Message-Id:Subject:To:From:MIME-Version: Content-Type:Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:In-Reply-To:References; bh=rrX0ukhirxxHU/y/7PPdZ6EWJlzQRWWXp14/+kSnMcM=; b=X+nRVwhXMvwVSQOoMfABE1dX34 1tYbIRgFskAFqQiZd6+dL+M4bWzkXbSaFBUSfsQvePojkuWMOm3AYkHhDaR+7u+WpsL/Q6CArkNIC SVRVjQhBROdC5MgGECTIjbEpqnxFBtl/mRr97dzjQXjyhEfYmFzlnryOhTE9h3F5mFVThK9nVIbG2 1ZHl8wYNYT4JhoOvhzQdnZL9ekcPkVxbyp5u1ZtZcO0aDMzbDuQ4igBtRjlDTvqoYAjNYr82qgzl+ lEjEKvOwV7jvRzrESsd5CzN+dUFMGmNAo09vJ6Wz+AI8OXtAv/3o1jOyY2Guzm9EA3ClwVV832j4h cxOMsziw==; Received: from gemulon.postgresql.org ([2001:4800:3e1:1::198]) by mahout.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w0UC1-0049jW-19 for pgsql-committers@lists.postgresql.org; Thu, 12 Mar 2026 00:46:25 +0000 Received: from localhost ([127.0.0.1] helo=gemulon.postgresql.org) by gemulon.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w0UC1-003XoJ-07 for pgsql-committers@lists.postgresql.org; Thu, 12 Mar 2026 00:46:25 +0000 Content-Type: multipart/mixed; boundary="===============3989324123436043412==" MIME-Version: 1.0 From: Richard Guo To: pgsql-committers@lists.postgresql.org Subject: pgsql: Convert NOT IN sublinks to anti-joins when safe X-Auto-Response-Suppress: All Auto-Submitted: auto-generated Message-Id: Date: Thu, 12 Mar 2026 00:46:25 +0000 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --===============3989324123436043412== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Q29udmVydCBOT1QgSU4gc3VibGlua3MgdG8gYW50aS1qb2lucyB3aGVuIHNhZmUKClRoZSBwbGFu bmVyIGhhcyBoaXN0b3JpY2FsbHkgYmVlbiB1bmFibGUgdG8gY29udmVydCAieCBOT1QgSU4gKFNF TEVDVAp5IC4uLikiIHN1YmxpbmtzIGludG8gYW50aS1qb2lucy4gIFRoaXMgaXMgYmVjYXVzZSBz dGFuZGFyZCBTUUwKc2VtYW50aWNzIGZvciBOT1QgSU4gcmVxdWlyZSB0aGF0IGlmIHRoZSBjb21w YXJpc29uICJ4ID0geSIgcmV0dXJucwpOVUxMLCB0aGUgIk5PVCBJTiIgZXhwcmVzc2lvbiBldmFs dWF0ZXMgdG8gTlVMTCAoZWZmZWN0aXZlbHkgZmFsc2UpLApjYXVzaW5nIHRoZSByb3cgdG8gYmUg ZGlzY2FyZGVkLiAgSW4gY29udHJhc3QsIGFuIGFudGktam9pbiBwcmVzZXJ2ZXMKdGhlIHJvdyBp ZiBubyBtYXRjaCBpcyBmb3VuZC4gIER1ZSB0byB0aGlzIHNlbWFudGljIG1pc21hdGNoIHJlZ2Fy ZGluZwpOVUxMIGhhbmRsaW5nLCB0aGUgY29udmVyc2lvbiB3YXMgcHJldmlvdXNseSBjb25zaWRl cmVkIHVuc2FmZS4KCkhvd2V2ZXIsIGlmIHdlIGNhbiBwcm92ZSB0aGF0IG5laXRoZXIgc2lkZSBv ZiB0aGUgY29tcGFyaXNvbiBjYW4geWllbGQKTlVMTCB2YWx1ZXMsIGFuZCBmdXJ0aGVyIHRoYXQg dGhlIG9wZXJhdG9yIGl0c2VsZiBjYW5ub3QgcmV0dXJuIE5VTEwKZm9yIG5vbi1udWxsIGlucHV0 cywgdGhlIGJlaGF2aW9yIG9mIE5PVCBJTiBhbmQgYW50aS1qb2luIGJlY29tZXMKaWRlbnRpY2Fs LiAgRW5hYmxpbmcgdGhpcyBjb252ZXJzaW9uIGFsbG93cyB0aGUgcGxhbm5lciB0byB0cmVhdCB0 aGUKc3VibGluayBhcyBhIGZpcnN0LWNsYXNzIHJlbGF0aW9uIHJhdGhlciB0aGFuIGFuIG9wYXF1 ZSBTdWJQbGFuCmZpbHRlci4gIFRoaXMgdW5sb2NrcyBnbG9iYWwgam9pbiBvcmRlcmluZyBvcHRp bWl6YXRpb24gYW5kIHBlcm1pdHMKdGhlIHNlbGVjdGlvbiBvZiB0aGUgbW9zdCBlZmZpY2llbnQg am9pbiBhbGdvcml0aG0gYmFzZWQgb24gY29zdCwKb2Z0ZW4geWllbGRpbmcgc2lnbmlmaWNhbnQg cGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzIGZvciBsYXJnZQpkYXRhc2V0cy4KClRoaXMgcGF0Y2gg dmVyaWZpZXMgdGhhdCBuZWl0aGVyIHNpZGUgb2YgdGhlIGNvbXBhcmlzb24gY2FuIGJlIE5VTEwK YW5kIHRoYXQgdGhlIG9wZXJhdG9yIGlzIHNhZmUgcmVnYXJkaW5nIE5VTEwgcmVzdWx0cyBiZWZv cmUgcGVyZm9ybWluZwp0aGUgY29udmVyc2lvbi4KClRvIHZlcmlmeSBvcGVyYXRvciBzYWZldHks IHdlIHJlcXVpcmUgdGhhdCB0aGUgb3BlcmF0b3IgYmUgYSBtZW1iZXIgb2YKYSBCLXRyZWUgb3Ig SGFzaCBvcGVyYXRvciBmYW1pbHkuICBUaGlzIHNlcnZlcyBhcyBhIHByb3h5IGZvciBzdGFuZGFy ZApib29sZWFuIGJlaGF2aW9yLCBlbnN1cmluZyB0aGUgb3BlcmF0b3IgZG9lcyBub3QgcmV0dXJu IE5VTEwgb24gdmFsaWQKbm9uLW51bGwgaW5wdXRzLCBhcyBkb2luZyBzbyB3b3VsZCBicmVhayBp bmRleCBpbnRlZ3JpdHkuCgpGb3Igb3BlcmFuZCBub24tbnVsbGFiaWxpdHksIHRoaXMgcGF0Y2gg bWFrZXMgdXNlIG9mIHNldmVyYWwgZXhpc3RpbmcKbWVjaGFuaXNtcy4gIEl0IGxldmVyYWdlcyB0 aGUgb3V0ZXItam9pbi1hd2FyZS1WYXIgaW5mcmFzdHJ1Y3R1cmUgdG8KdmVyaWZ5IHRoYXQgYSBW YXIgZG9lcyBub3QgY29tZSBmcm9tIHRoZSBudWxsYWJsZSBzaWRlIG9mIGFuIG91dGVyCmpvaW4s IGFuZCBjb25zdWx0cyB0aGUgTk9ULU5VTEwtYXR0bnVtcyBoYXNoIHRhYmxlIHRvIGVmZmljaWVu dGx5CnZlcmlmeSBzY2hlbWEtbGV2ZWwgTk9UIE5VTEwgY29uc3RyYWludHMuICBBZGRpdGlvbmFs bHksIGl0IGVtcGxveXMKZmluZF9ub25udWxsYWJsZV92YXJzIHRvIGlkZW50aWZ5IFZhcnMgZm9y Y2VkIG5vbi1udWxsYWJsZSBieSBxdWFsCmNsYXVzZXMsIGFuZCBleHByX2lzX25vbm51bGxhYmxl IHRvIGRlZHVjZSBub24tbnVsbGFiaWxpdHkgZm9yIG90aGVyCmV4cHJlc3Npb24gdHlwZXMuCgpU aGUgbG9naWMgZm9yIHZlcmlmeWluZyB0aGUgbm9uLW51bGxhYmlsaXR5IG9mIHRoZSBzdWJxdWVy eSBvdXRwdXRzCndhcyBhZGFwdGVkIGZyb20gcHJpb3Igd29yayBieSBEYXZpZCBSb3dsZXkgYW5k IFRvbSBMYW5lLgoKQXV0aG9yOiBSaWNoYXJkIEd1byA8Z3VvZmVuZ2xpbnV4QGdtYWlsLmNvbT4K UmV2aWV3ZWQtYnk6IHdlbmh1aSBxaXUgPHFpdXdlbmh1aWZ4QGdtYWlsLmNvbT4KUmV2aWV3ZWQt Ynk6IFpoYW5nIE1pbmdsaSA8em1scG9zdGdyZXNAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogSmFw aW4gTGkgPGphcGlubGlAaG90bWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FNYldzNDk1ZUY9LWZTYTVDd0pTNkItQmFFaTNBUnAwVU5iNEx0M0VrZ1VHWkp3a0FRQG1h aWwuZ21haWwuY29tCgpCcmFuY2gKLS0tLS0tCm1hc3RlcgoKRGV0YWlscwotLS0tLS0tCmh0dHBz Oi8vZ2l0LnBvc3RncmVzcWwub3JnL3BnL2NvbW1pdGRpZmYvMzgzZWIyMWViZmZlOWRkZDk3ZGNh MDNlNTI5ZmEzNjM1ODBlN2NjZgoKTW9kaWZpZWQgRmlsZXMKLS0tLS0tLS0tLS0tLS0Kc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYyAgICAgfCAgIDUgKwpzcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9pbml0c3BsYW4uYyAgICB8ICAgNCArLQpzcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9zdWJzZWxlY3QuYyAgICB8IDE1OSArKysrKysrKysrLQpzcmMvYmFja2VuZC9vcHRp bWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyB8ICA3MiArKysrLQpzcmMvYmFja2VuZC9vcHRpbWl6 ZXIvdXRpbC9jbGF1c2VzLmMgICAgICB8IDM4NSArKysrKysrKysrKysrKysrKysrKysrLS0tLQpz cmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC92YXIuYyAgICAgICAgICB8ICAxNSArLQpzcmMvYmFj a2VuZC91dGlscy9hZHQvaW50OC5jICAgICAgICAgICAgICB8ICAgMiArLQpzcmMvYmFja2VuZC91 dGlscy9hZHQvcnVsZXV0aWxzLmMgICAgICAgICB8ICAgMyArCnNyYy9iYWNrZW5kL3V0aWxzL2Nh Y2hlL2xzeXNjYWNoZS5jICAgICAgIHwgIDY4ICsrKysrCnNyYy9pbmNsdWRlL29wdGltaXplci9j bGF1c2VzLmggICAgICAgICAgIHwgICAxICsKc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXpl ci5oICAgICAgICAgfCAgMTMgKy0Kc3JjL2luY2x1ZGUvb3B0aW1pemVyL3N1YnNlbGVjdC5oICAg ICAgICAgfCAgIDEgKwpzcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCAgICAgICAgICAgICB8 ICAgMiArCnNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2VsZWN0Lm91dCAgIHwgNDM5ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwpzcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzZWxl Y3Quc3FsICAgICAgICB8IDE4NSArKysrKysrKysrKysrCnNyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0ICAgICAgICAgIHwgICAxICsKMTYgZmlsZXMgY2hhbmdlZCwgMTI4MCBpbnNlcnRp b25zKCspLCA3NSBkZWxldGlvbnMoLSkKCg== --===============3989324123436043412==--