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.94.2) (envelope-from ) id 1tcncH-002lL0-C3 for pgsql-performance@arkaria.postgresql.org; Tue, 28 Jan 2025 15:35:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tcncE-001lTF-9F for pgsql-performance@arkaria.postgresql.org; Tue, 28 Jan 2025 15:35:02 +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.94.2) (envelope-from ) id 1tcncD-001lT7-QQ for pgsql-performance@lists.postgresql.org; Tue, 28 Jan 2025 15:35:01 +0000 Received: from mx0a-000e5c18.pphosted.com ([205.220.169.92]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1tcnc7-001ysd-2j for pgsql-performance@postgresql.org; Tue, 28 Jan 2025 15:35:00 +0000 Received: from pps.filterd (m0285253.ppops.net [127.0.0.1]) by mx0a-000e5c18.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 50SEidri007170; Tue, 28 Jan 2025 15:34:52 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mdlive.com; h= content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=pod0510241234; bh=x9vaKrk1A/y92m5+OaID ZInlnhaOVmauXYetxG4zhKc=; b=Fsaxkt66b73frfwi/LnxZ9C6pW1hU7fouuP2 yUKdaJAzABvNwJyEVHyD8fUqLDCpXFl2Ie6bf2fMKEEzodSs+4hwYnLi4iZ3gqt8 wuYyYaqwkn04WEzCXE8C+jEy+kr2lHQC4LDUYanjGcvwk4WusXxjp0q7y2OW2fwa ai+FgkWV8/PnvJO50jElVtzTnF9JELmhoycYwCV49l/zNSjKS2rZv3fhw1nE8YPL yhBDmiLhsq2h6NR5bPAG5HcSS9VIZZaP2PV2VsIasvzmEKHtw+sh5peTzWy672rZ csySl3+aWvlPPY0XHoYM+sehC3PFDw3RZJHxuSi2kM8k/VltbA== Received: from eiaappxp0012.gid.prd.globalcore.com (lyncav03.cigna.com [170.48.19.151] (may be forged)) by mx0a-000e5c18.pphosted.com (PPS) with ESMTPS id 44emac8vcc-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 28 Jan 2025 15:34:51 +0000 (GMT) Received: from cvlappxp20768.internal.cigna.com (HELO CIWX9MAP0057.internal.cigna.com) ([10.31.88.209]) by EIAAPPXP0012.gid.prd.globalcore.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jan 2025 15:34:50 +0000 Received: from CIWX9MAP0082.internal.cigna.com (10.25.171.154) by CIWX9MAP0057.internal.cigna.com (10.25.171.125) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Tue, 28 Jan 2025 10:34:50 -0500 Received: from CIWX9MAP0064.internal.cigna.com (10.25.171.132) by CIWX9MAP0082.internal.cigna.com (10.25.171.154) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Tue, 28 Jan 2025 10:34:50 -0500 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (10.120.223.5) by CIWX9MAP0064.internal.cigna.com (10.25.171.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11 via Frontend Transport; Tue, 28 Jan 2025 10:34:50 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=r/xOAUNPw6UfaGJpCTnzgPUwzp64iNCISNfiCid6G2n41y+ucRr1Eb0/w5P1cwX7Ftbj9HVmXYcYawRgLjHRSwZOAv9SpEcpcfQrnTi0LR0+7EUPhHrGW7oHZp2DZ8ujEmLZFaDd+9PcbK0KDF/iK+aUJpCRCsdVAVtmmZ5SCmqLB2RMe+kYMDzXrQ3v9Ly1yncmOAswPT5IWps0jpyA1tvKvfuq34xjYIDfYIBf2J1dgEbBdJDwWK4Nr9RW4FKbfKoj19Yn26bbkYkOwrT8Ck/NoycuhR36GWbi6Vqeb/EQg3Ps2RaPoWMbBuLwVaqev5hUGRsdIGKaStcTHLKjZQ== 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=kK0nrX9t0+KZYsdop65KalnwBgXhMd7G5bxbPSIpwQw=; b=ANxaMFOlg6T0CfbgjcO6hZwMK15W/kee54GhR66NnQHiD3aT6MjPiO8PJ6D32bm26n4YuKTy7tD+XoP2JFQI8NfYxfeTvWldMcxbaTNT6csL72SLTo6YZmiXRGdCgQQbFfVqLz/fJjcXLS3z9I0LDjgXMnz9Z9GS26w2rCN8OPwtPT6lQF5ZhAyj4HNsk+vQ45srQknZ7Pr43LHm18cPkdDmVy64bvWDA+BxqPZgWOa5deq+AORKKGrQ1k/Ixv7PxEVno49G23jQ+DqehSmQK72BvmqvdD26NPCSZ/h2NE38mdxdk8lEzKSutWlcug4yznZoD8qiJ40stqAWJ3+1LQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mdlive.com; dmarc=pass action=none header.from=mdlive.com; dkim=pass header.d=mdlive.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cignatlp.onmicrosoft.com; s=selector2-cignatlp-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kK0nrX9t0+KZYsdop65KalnwBgXhMd7G5bxbPSIpwQw=; b=hmvRyORIB64izM/bJ+j5yXIpvTQjbkayNFvboCRJGz3N5/qVbbFG6dbReYa4JIAyco1uWiY9xFM0en89MSXoDrFLhmaDfEchN1fVVH70+pXanX7657LqeNc8okL1fato3OSREN54y6UgoTUR9j4+iOk0A+jDQVD7x8/TGU1rJtY= Received: from BYAPR12MB3253.namprd12.prod.outlook.com (2603:10b6:a03:12f::21) by SA1PR12MB6749.namprd12.prod.outlook.com (2603:10b6:806:255::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8377.23; Tue, 28 Jan 2025 15:34:48 +0000 Received: from BYAPR12MB3253.namprd12.prod.outlook.com ([fe80::a883:947c:b738:70b0]) by BYAPR12MB3253.namprd12.prod.outlook.com ([fe80::a883:947c:b738:70b0%3]) with mapi id 15.20.8377.021; Tue, 28 Jan 2025 15:34:48 +0000 From: "Wetmore, Matthew (CTR)" To: Clemens Eisserer , "pgsql-performance@postgresql.org" Subject: Re: Why ORing with a false one-time filter turns an Index-Lookup into a SeqScan Thread-Topic: Why ORing with a false one-time filter turns an Index-Lookup into a SeqScan Thread-Index: AQHbcZUpIBLCFjEDDEmBJU4HOSrwe7MrywSA Date: Tue, 28 Jan 2025 15:34:47 +0000 Message-ID: <2D00F7AA-17ED-4FDC-A13F-86C99F7FCE6A@glbcore.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BYAPR12MB3253:EE_|SA1PR12MB6749:EE_ x-ms-office365-filtering-correlation-id: 616e44dc-3ad2-4814-6428-08dd3fb14c72 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|8096899003|7053199007|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?UktIaHFVc3ZNVlhJOWFSOHFZbnRrTi9UWkxzMzU0SmdJN1h1K0tQbENBVU1o?= =?utf-8?B?bHdzcjNYN1kzaG1hVTE0UElUZkF4OHNNZ3R0UWFNYUNTNjNxeDBXWkVPanFP?= =?utf-8?B?azhFckl6NUlCZnA2WEY4M0M5cDRDSGswQlErOUhqbVl0ZmVtdFBLQmsxY3BY?= =?utf-8?B?V0JGUE1LT2RQeG1WZkl2R2xnUDFoYVpiOG5yR2lnR3ExRVNtZ0pkK29hQ0t1?= =?utf-8?B?K1NFU0FERll2anIzZ0VoUzc5WFhpelZEK01sT3MzZlF3UmRRQlNjVU9iS2do?= =?utf-8?B?MnVNbWhPZVEwanhYQ1VQN0hkd2pNT3NZODlWaEVqNDFYWEhWSkszMkZITGhT?= =?utf-8?B?a3l2SXgrUnFtNEY0MGhacEZ1djI3ZUlmL3QzcXMrMy9ScVZmaTZ4UTBNQ2Ro?= =?utf-8?B?c3dmajFZMGs0RFhiU1Rlb0dNNzErUTRzbzUyVVRhREdGRG84QmViSldRc09H?= =?utf-8?B?QytacC95Q0svaDU1Z0JmZDFIQzI5aUxZc2hKK3ZwRGF1b1pXTEw1TjZ5bTdT?= =?utf-8?B?ODhmcXJMOVRHY0dUempYb3E0UnA5YUZGaXgrVTRNYk9Gc05aMm5DazRZSThI?= =?utf-8?B?ZWdKMENkb2tLR0Y0M0pQeGtjTjErMkJjUTk5VjNpcHpIdHc5MlEzTE9jb1Fz?= =?utf-8?B?WmpHTGh4REh1bmQ4MVd1Ymx5MG85Yk96UURDREE1WFIwWUZUSkQvaFd5ZEgz?= =?utf-8?B?RjA0LyszMzNxYUxadXRmMTd4YzZHNU0wSE5sSzVteGRtdTF0dUZrTS9RY2xz?= =?utf-8?B?VU1ybjdyd0kxR0dCbTVNZ1B3cnVyN0hNWEhGNlJGem16bysrbzhFcjQ2c01R?= =?utf-8?B?aEpBMXk1M1F5WTRQQWJQMHRaK0FoZ1k4ME5CZW93UUl2RVdXZUVtcXNrNFpm?= =?utf-8?B?Q2pCWmZOVTNDWFVFRWZKQzdudWtoNHh4dnEwL0x1bmNkUkJaZ1dEWlFBMWRr?= =?utf-8?B?bnptRkJJZUxNL09wdmpiYnU1WkF3VkZTSGwvcUlVOFR1NVc0eWMvR21rNVNn?= =?utf-8?B?UjlONUY4bElCaDl3Z3RFQmZYdnN2cTFucnZycjBkT3VWRjhQOHoxYXpmc0s0?= =?utf-8?B?eWd0SFJUQlltV2Z4Q2hZMVU5dTg2dFgrSWtVZXpsUnVPbWRwTGNwcGdJeUFU?= =?utf-8?B?aHZuT2hVenhNNXNCRG96MGZHQVo4Y1VYYWVLQ1daNWRleFEzTUJBa2ZHbmZU?= =?utf-8?B?WkxWVEpzY1hXVkpoL1NBLzJDNkFCN3ppdGJXaTFFUHhJSDUwVTVnVTlQaDF5?= =?utf-8?B?aHZRaWtGcVZxYjZFZHBLaS9HZUI4MjMzSDZIZTJVcWZhN3BZMzY1aFY0Z0pl?= =?utf-8?B?Y0FUR0lYeVhKVkgrWHNwUUhncTlDdU9MQ0FVNktxYjJwdDN2NURrUWhUK0Rx?= =?utf-8?B?VnpNK0d6MXlhemU1ckwyelhFK0l6T1FNcitjUDBTUDNMZGs0QnJKVEsyUXdL?= =?utf-8?B?d25HanZPZ1Rwa2VFejhuRWkwMlgwQ1NQdk1rY25kVXNRejgxd1VPem51cVFZ?= =?utf-8?B?MlJlZ2FoMjhNVXVYV0ZKOWFEQzd3YTJObEdMUUpqa2tTK3JWT2hkbzRjMlc3?= =?utf-8?B?L05GUktsZnhQSU92Tm1KTndYeWdNZk9EK3NkS2JrU2ptZkk0ZW1SQ1prTTli?= =?utf-8?B?UURSR2lMUWl4NDRESjJCNjlyQ2xSTUtvUXVNMFVNZTN1Q3NoVWpHN3NyeDBh?= =?utf-8?B?RlFpQnBmZEtoUFNEMWU2UHhRZDZMUkNWR1hzWVZmUnRrd29raUtTTXh2UlVC?= =?utf-8?B?MXZKQlBFd0wvd1l0ek8waFI3bDlYUmU3WGYvRGdwbis4dnZyemtYd1BCRmVl?= =?utf-8?B?NGZGUzZYK2JZeGlnejRqQWh6cFZnelNHb2pld3BSbm1henlGT1NYMmp3MVRl?= =?utf-8?B?TXpGamZmVTlNanZiaWFsdm5mWHBvcGs0aEVIeDUwSmhnUE9QZHFEOUpKRDhK?= =?utf-8?Q?naJS01AdCZZkiQXKrUZOncwtcuBFIEzd?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR12MB3253.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(8096899003)(7053199007)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Nnc2bll0eHNUelphY1ZPY1A4ZXkwSTJadkppTk82eGtyL1QxR3pjeS9tV3Jr?= =?utf-8?B?RkZ3T3U4WjZONitpK3MxallnaEtsTGlGWTFTd096a0UyNDRaQW5LSkNzM0wy?= =?utf-8?B?Q2NNdDR2U3JWTjlMYVFlUWNQZUJGVFdSMzFTeUIxWStXZDdIUWsyK2VUZ01s?= =?utf-8?B?ajlObTl1T1Z5RFU1OW1STEhWN255S3BBaGEzVG54bkNVdlZtVUxGeXpnaldG?= =?utf-8?B?dWNMRlMvRFFYemtzZCszYlI3cnNWenluQXZtc250Tkw1Rm0zdEdVZDJFUlZ3?= =?utf-8?B?Y3NaYS85VXZBL2Z4MEVNWEZSMVJ6R3JxY2t1WTUwNExzVnV1ZlM2L0xIZjBu?= =?utf-8?B?b2NxeTdqQnlSQ042NmFXY1pCUEQrb2lLNnpHMFZEdDhPQWtpN01KL0dUeEsr?= =?utf-8?B?R21sZWN0Wm1ZZkVHUzJxRUMzRW9ERFlVMHZiTmRyNlVCa3lKNUhYUUNEVmxF?= =?utf-8?B?ejZtVjRGaVFUR09YTmkxREs0Vi90bS9HVGRWMk14TG8waDVRdFk5cW0xV2h2?= =?utf-8?B?K0dEdlRIRXR2NldrSElUMS9jS1IySUh1Rmp5WWQ2SUtZdTdGYTk4Y0JmaFQr?= =?utf-8?B?c3Foc0ZJNDg3SUEwSmwwQnZWVXRJQ3d5TlZJY21sZ3dCcnpEaFBYK0ZlbjJz?= =?utf-8?B?dGErcjg0SGd1SlM4eUwwaXA1a1EwWnFFYzZKanVlU0VETS9uZHRqVkFkTVYr?= =?utf-8?B?UWVGc1F4SktldGFsSDk1ZENzOTM4TW1rbTdaTnlqQld3YXVRYXJXNGxETUZu?= =?utf-8?B?d1RoRHpVOXh2eS8rWUVkUHZKS2hyMS82NkZPRHRZeEk5U1QrZU1LaDVsZ3dM?= =?utf-8?B?Y0NJbkcybWh4dHE0VTNncEEwUzUrQVdYMzF2NkFKRXF3TUtLN3dYeVBab3ZO?= =?utf-8?B?ZlVranBMTi9ndVJCWjNrUHZSQkczaHB3ekJZSllXVWdnWkMxc3Z2bEN5Mllu?= =?utf-8?B?QXFaUlZCNnNwVW9CRUM1cjFrSHpQNnJOdTdwZlVheWtlN0dRbG43QzV0Y1JP?= =?utf-8?B?TURxT1ViSmtyYXBVZjZ2VGdpdDRyemx3M1ErZmlLR2pvem1LM2x2Snd1QzZR?= =?utf-8?B?TlU5aEFaSjVHNUVycG1BVXl2cUt4K294SzgySmk1dlN0TkJPWUttRE92L21Y?= =?utf-8?B?S1Q1RTFRNXJrQzBlY0ppaE1oK2htNG91MDJoRkQ5YTJrbkNBQVdPWFhJSUt5?= =?utf-8?B?MUJjUVFmVkVRS2dwWU5WY1h2WlpyN0toRFk5TzM5RXp6Qmp3Nkhac0lqWTVx?= =?utf-8?B?a3ZOU3pGY1FDWU54SHozeTBoVmNLc2Y3WWIvcmVQTVdZNHBvc3ZDL0RETjd1?= =?utf-8?B?dUxQWlhZNkJWUm1xWHJsUnlJWGtobldCZGlBRjBmMXRDbzZLYXNSdnlIcjZY?= =?utf-8?B?OVpub3VEcGpXWjhCRVh2ang4NWdiNjZMNzZYSEk2OXVvdGg2QTEwb3pHcjVJ?= =?utf-8?B?RHJFbmtLeFJyWXl5RnVJZFQvb3dOYU14bllKNFdxZzNkWWZSb1NBeUZMUWNp?= =?utf-8?B?c0l0NURGV2F4dE9WQkJWYVVaNWYySnlUWTM0Zk5iTHpmTmtqUlRHMkpPSkYz?= =?utf-8?B?SHUzTXcxaE1PTU1xZFJCNUJwMzV4bXBVV1ZwMlRRRVlHaEkxYjZDS0ZmcXZ6?= =?utf-8?B?RlVaUy8yQVc0SnJuL2NMOE1walc4WFlLNzkySkd5dTIzMktGWDlwakFPNTJs?= =?utf-8?B?VEI0M3VYYzIrMm14b1JVTzEwMVREbW1kWGZKQTZYN2JPM3A5d2xyWXRTMTlm?= =?utf-8?B?VWprS0MzRnBoTXRKMTYzSEltMmNRcVo4QnVLR0M5ai8yY3FBc3IxTUcyOWhJ?= =?utf-8?B?anpiUS9tUm85ejQ2bW5ld2J5WkNoMkdoNFlZVmVNOVhDUTMzUGEycVJIRUF1?= =?utf-8?B?QVp2SEttUXczQzlqK2F5VVlHZERNRVR3RkNEekpieVk1eGp1TGNFVjBFVGVq?= =?utf-8?B?dXZPL1ZKdlFicDFyNTNld2Y1U1ozT3c1ZUJnWk5ZMGlOMzJ3U2o0MFNaR2o0?= =?utf-8?B?dHVWdjlmZThDb0poL3AvamNSZTRlbHIyMmhVd09xMSt3RXFWcTlwWDlET1Rz?= =?utf-8?B?RmJRaG1nZS9VRmlWbnNPa0VCZ1pBMkczb2E1MVRhSzRycm0rOEUrSGo2cGJE?= =?utf-8?B?c3kyR3ZMSlYzWnBNR1BWclBxZWFzbjI0Q1NNN215OW93WjhWMjZQYzk5UVdG?= =?utf-8?B?NkE9PQ==?= Content-Type: multipart/related; boundary="_004_2D00F7AA17ED4FDCA13F86C99F7FCE6Aglbcorecom_"; type="multipart/alternative" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR12MB3253.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 616e44dc-3ad2-4814-6428-08dd3fb14c72 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jan 2025 15:34:48.0396 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 791b26cb-3fdf-47c3-b85d-bd9f037e3e7f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: /Uf3LUXdQPavTBLCVSv8KAnxEFEcslII8YTBOFDqrlWOtNP5bpQ7C3rQQ30m+U8ig3f2+/HQ28ti56DlsWthbQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6749 X-ProofPoint-Routing: 000e5c18 X-CFilter-Loop: Reflected X-Proofpoint-GUID: zYPTEBNs9IZ2DaLRPP10RhXu6EFW40nc X-Proofpoint-ORIG-GUID: zYPTEBNs9IZ2DaLRPP10RhXu6EFW40nc X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-01-28_04,2025-01-27_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 malwarescore=0 suspectscore=0 mlxscore=0 priorityscore=1501 clxscore=1011 mlxlogscore=999 adultscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2411120000 definitions=main-2501280115 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_2D00F7AA17ED4FDCA13F86C99F7FCE6Aglbcorecom_ Content-Type: multipart/alternative; boundary="_000_2D00F7AA17ED4FDCA13F86C99F7FCE6Aglbcorecom_" --_000_2D00F7AA17ED4FDCA13F86C99F7FCE6Aglbcorecom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Not an official postgres reply, I=E2=80=99m just some guy=E2=80=A6 You added to the OR to ::text. It would have to do a SEQ scan to perform a search ::text on the column, as= it doesn=E2=80=99t know the column=E2=80=99s ::text value(s). I think if you make another index on the column::text, the SEQ scan would b= e an index scan, but text indexing isn=E2=80=99t fast, so maybe the SEQ sca= n is still faster. But it will improve the query run time. The query planner will pick the fastest way, if a SEQ scan is faster, don= =E2=80=99t get hung up on that, but create the ::text index to improve the = run time. Just my $0.02 -- Matt Wetmore Data Engineer Braze Certified Architect 415.416.9738 [signature_1095211592] From: Clemens Eisserer Date: Tuesday, January 28, 2025 at 6:58=E2=80=AFAM To: "pgsql-performance@postgresql.org" Subject: Why ORing with a false one-time filter turns an Index-Lookup into = a SeqScan Hello, Any idea what could cause postgresql (16.=E2=80=8A0) to fall back to= a SeqScan when ORing a falsy one-time filter to a selection which would ot= herwise use an index scan? 1.=E2=80=8A) Without the false one-time conditio= n, the query uses the existing index Hello, Any idea what could cause postgresql (16.0) to fall back to a SeqScan when ORing a falsy one-time filter to a selection which would otherwise use an index scan? 1.) Without the false one-time condition, the query uses the existing index on owner to perform the lookup: select * from mytable where owner =3D current_setting('my.wfsuser', true); Bitmap Heap Scan on mytable (cost=3D43.92..12523.30 rows=3D3548 width=3D2341) (actual time=3D0.032..0.033 rows=3D0 loops=3D1) Recheck Cond: ((owner)::text =3D current_setting('my.wfsuser'::text, true= )) -> Bitmap Index Scan on mytable_owner_idx (cost=3D0.00..43.04 rows=3D3548 width=3D0) (actual time=3D0.029..0.030 rows=3D0 loops=3D1) Index Cond: ((owner)::text =3D current_setting('my.wfsuser'::text, = true)) Planning Time: 0.221 ms Execution Time: 0.094 ms 2.) also a static condition resulting in a false value is correctly recogni= zed: select * from mytable where current_setting('my.wfsuser'::text, true) =3D 'admin'::text; Result (cost=3D0.01..158384.05 rows=3D709504 width=3D2341) (actual time=3D0.008..0.009 rows=3D0 loops=3D1) One-Time Filter: (current_setting('my.wfsuser'::text, true) =3D 'admin'::= text) -> Seq Scan on mytable (cost=3D0.01..158384.05 rows=3D709504 width=3D2341) (never executed) Planning Time: 0.163 ms Execution Time: 0.068 ms 3.) Yet when both filters are combined with OR, postgresql executes a SeqSc= an: select * from mytable where owner =3D current_setting('my.wfsuser', true) OR current_setting('my.wfsuser'::text, true) =3D 'admin'::text; Gather (cost=3D1000.00..158909.23 rows=3D7077 width=3D2341) (actual time=3D2783.728..2786.520 rows=3D0 loops=3D1) Workers Planned: 2 Workers Launched: 2 -> Parallel Seq Scan on mytable (cost=3D0.00..157201.53 rows=3D2949 width=3D2341) (actual time=3D2744.147..2744.147 rows=3D0 loops=3D3) Filter: (((owner)::text =3D current_setting('my.wfsuser'::text, true)) OR (current_setting('my.wfsuser'::text, true) =3D 'admin'::text)) Rows Removed by Filter: 236501 Planning Time: 0.217 ms Execution Time: 2786.575 ms Thanks and best regards, Clemens --_000_2D00F7AA17ED4FDCA13F86C99F7FCE6Aglbcorecom_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-ID: <59F4756B60A8B94FBD6F7E5EAE5717B5@namprd12.prod.outlook.com>

Not an official pos= tgres reply, I=E2=80=99m just some guy=E2=80=A6

 

You added to the OR= to ::text.

 

It would have to do= a SEQ scan to perform a search ::text on the column, as it doesn=E2=80=99t= know the column=E2=80=99s ::text value(s).

 

I think if you make= another index on the column::text, the SEQ scan would be an index scan, bu= t text indexing isn=E2=80=99t fast, so maybe the SEQ scan is still faster.&= nbsp; But it will improve the query run time.

 

The query planner w= ill pick the fastest way, if a SEQ scan is faster, don=E2=80=99t get hung u= p on that, but create the ::text index to improve the run time.<= /span>

 

Just my $0.02<= /o:p>

 

 

 

-- 

Matt Wetmore

Data Engineer

Braze Certified Architect

415.416.9738

 

3D"signature_1095211592"

 

 

From: Clemens Eisserer <linuxhippy@gmail.com>
Date: Tuesday, January 28, 2025 at 6:58=E2=80=AFAM
To: "pgsql-performance@postgresql.org" <pgsql-performan= ce@postgresql.org>
Subject: Why ORing with a false one-time filter turns an Index-Looku= p into a SeqScan

 

Hello, Any idea what could cause postgresql (16= .=E2=80=8A0) to fall back to a SeqScan when ORing a falsy one-time filter to a selectio= n which would otherwise use an index scan? 1.=E2=80=8A) Without the false one-time condition, the query uses the existing index=

Hello,
 
Any idea what could cause postgresql (16.0) to fall back to a SeqScan
when ORing a falsy one-time filter to a selection which would
otherwise use an index scan?
 
1.) Without the false one-time condition, the query uses the existing
index on owner to perform the lookup:
select * from mytable where owner =3D current_setting('my.wfsuser', tru=
e);
Bitmap Heap Scan on mytable  (cost=3D43.92..12523.30 rows=3D3548
width=3D2341) (actual time=3D0.032..0.033 rows=3D0 loops=3D1)
  Recheck Cond: ((owner)::text =3D current_setting('my.wfsuser'::t=
ext, true))
  ->  Bitmap Index Scan on mytable_owner_idx  (cost=
=3D0.00..43.04
rows=3D3548 width=3D0) (actual time=3D0.029..0.030 rows=3D0 loops=3D1)<=
o:p>
        Index Cond: ((owner)::text =
=3D current_setting('my.wfsuser'::text, true))
Planning Time: 0.221 ms
Execution Time: 0.094 ms
 
2.) also a static condition resulting in a false value is correctly rec=
ognized:
select * from mytable  where current_setting('my.wfsuser'::text, t=
rue)
=3D 'admin'::text;
Result  (cost=3D0.01..158384.05 rows=3D709504 width=3D2341) (actua=
l
time=3D0.008..0.009 rows=3D0 loops=3D1)
  One-Time Filter: (current_setting('my.wfsuser'::text, true) =3D =
'admin'::text)
  ->  Seq Scan on mytable  (cost=3D0.01..158384.05 ro=
ws=3D709504
width=3D2341) (never executed)
Planning Time: 0.163 ms
Execution Time: 0.068 ms
 
3.) Yet when both filters are combined with OR, postgresql executes a S=
eqScan:
select * from mytable where owner =3D current_setting('my.wfsuser',
true) OR current_setting('my.wfsuser'::text, true) =3D 'admin'::text;
Gather  (cost=3D1000.00..158909.23 rows=3D7077 width=3D2341) (actu=
al
time=3D2783.728..2786.520 rows=3D0 loops=3D1)
  Workers Planned: 2
  Workers Launched: 2
  ->  Parallel Seq Scan on mytable  (cost=3D0.00..157=
201.53 rows=3D2949
width=3D2341) (actual time=3D2744.147..2744.147 rows=3D0 loops=3D3)
        Filter: (((owner)::text =3D =
current_setting('my.wfsuser'::text,
true)) OR (current_setting('my.wfsuser'::text, true) =3D 'admin'::text)=
)
        Rows Removed by Filter: 2365=
01
Planning Time: 0.217 ms
Execution Time: 2786.575 ms
 
Thanks and best regards, Clemens
 
 
--_000_2D00F7AA17ED4FDCA13F86C99F7FCE6Aglbcorecom_-- --_004_2D00F7AA17ED4FDCA13F86C99F7FCE6Aglbcorecom_ Content-Type: image/png; name="image001.png" Content-Description: image001.png Content-Disposition: inline; filename="image001.png"; size=8286; creation-date="Tue, 28 Jan 2025 15:34:43 GMT"; modification-date="Tue, 28 Jan 2025 15:34:43 GMT" Content-ID: Content-Transfer-Encoding: base64 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 lr/SZmKsZvqLFSKxCGNV9LEkrmJ9iNSdTdH0Lyb982T6FQzAHUVn3oD8dN9U1DVHM122649h/9EA /Wnxu4O+PyhvWXV5Spi3MkEuVQP6Fda2v0tL5WzeRI23/uB2Jsj5zVvN+Jox0XTfVJQhb7bLdhmT ekOKVf/npmCwcquuoYKvYqze29AS61/YKRgtHZU7G80uoMJd+c32N2vRXzBYtWivMbLaWW3RmKIa XsrlDS+x9gL1BXXdP9VC4c32nNoLBiun4hok9kAL7qxc1e3gBjqDn2Oh7noW1FBXGTs9ceyqpIcv uSkYrNyqq7vgKRgrPWFsZerOsVBPIzsb1XL/pMt2vaPYVSkcCVus5xfTnvdirLrC9wT1peJON3kx OHrCmffyvRZj1wpDvaYf8guvNTTPENAvhx6NoZrbPFUKNUnRgC7fJ6akxyV15ct26aPm43AwWHHD qnFx6ynq9+AbGKp6vwzauFZ1jZJ0+f5V4DOHuvpl+w/Yna6uZXhI2Xoru9VoU48GNbr9q6jbIjAL I1XEI/IsTe0JUzPeV6pOmwFdZMeR0nwo73czfcoo8erynfs3Xb5n/fJ6zbsLj0pKb83U3zr6X4TO TvVoQyyrDJbO47uBaj9trMGwBHQEaWDo0X61e4Me8LwMngVZ6V4YdwTV2p81P5dPeT4DdC+1EPwO I9URdzYq81Ggd7mSjANJDSUZ0RdAmj5uIl2TT32aRvbJk3arjaRzKOzuDAXKeCxgwqa1NUM2mVlU zl1AX616LbNUsYzqE12wa+6eW+vOylZtA+sJbtBA0IC/BthlyfBq4dcOKpG0I0tMDAlBA0EDQQNB A0EDQQNBA0EDQQNBA0EDQQNBA0EDQQNBA0EDQQNBA0EDQQNBA0EDQQNBA0EDQQNBA0EDQQNBA0ED QQNBA0EDQQNBA0EDQQNBA0EDQQNBA0EDQQNBA0EDQQNBA0EDQQNBA0EDQQNBA0EDQQNBA0EDQQNB A0EDQQNBA0EDQQNBA0EDQQNBA0EDQQNBA0EDQQNBA0EDQQNBA0VqIPUXRwcPHKSfp+2+bMXyaj9R W2SdQl6dXAMf3GHHHm+uX6+f3db4eYrxs6KTNylUv0k0kGiwMFZ7UsffAf1JwxQG3XmNqDPl6ne5 PwL0w/VpP6Svuk+mXtNwA3lqAD3/HJGDweXo8Oue4rHs5NmbhOvBfsAdW2sIn0E5l+EGChrIrYE0 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 t2S/P69oagAAAABJRU5ErkJgggAA --_004_2D00F7AA17ED4FDCA13F86C99F7FCE6Aglbcorecom_--