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 1u8t5K-00D8K2-63 for pgsql-committers@arkaria.postgresql.org; Sun, 27 Apr 2025 03:53:42 +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 1u8t5G-008cEv-QL for pgsql-committers@arkaria.postgresql.org; Sun, 27 Apr 2025 03:53:39 +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 1u8t5G-008cEn-Dv for pgsql-committers@lists.postgresql.org; Sun, 27 Apr 2025 03:53:39 +0000 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1u8t5D-002H0U-1d for pgsql-committers@lists.postgresql.org; Sun, 27 Apr 2025 03:53:38 +0000 Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-39ac8e7688aso2217786f8f.2 for ; Sat, 26 Apr 2025 20:53:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bowt-ie.20230601.gappssmtp.com; s=20230601; t=1745726015; x=1746330815; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=29ek2pgsMHIrJypxhsfFgFXJt1PZUDiy5J3jyz5TV4c=; b=ifQENgioGjvb14v2cDAzDMX2NB+LKa00nWQbKd/AFSnfFfoKFB8G5fgrEFKlr2h1BQ zgQnz/7s8dUv0P9oG+nEJtU8PuyLrcv8x3RjhAeovTV7VxfET2vadlhcEogp4d/9OKz3 2CHBYi/3/fvcdsvps1bewlXQsG/7kNUdLLhSf+6XCdtrLbi1eeeloodm9uDzFqkGkslT tImjOzuG4HlD0EmAO+2OfEzxVJsN8+cSTlDSoMzQdaxtQY0aZEGNkujN5+ceM+ZbGgun HXHmmI42VKwvQGcGtKNT4kgnDU7VUQYkA3Dpjvl13mlSQUg4YQndWqtx/+YsrzLqf4nB KUZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745726015; x=1746330815; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=29ek2pgsMHIrJypxhsfFgFXJt1PZUDiy5J3jyz5TV4c=; b=M0e7FF7lx6uDsJsNaz6ud1Pznz/nVuwQSq4oNPgPAcZVrFbffE8v19wUpDgsNdpVEO ZW7ixImeENavd9HA2qYibmw5DlK/ZqdqQWGzx/8GQXLkZl1ILv5Mu0zks8JnPaCXlr+M Xw3NJr8XFO7V9AG9Ut8l8VlpWyCPEL8he2NAEXJMWiB8ygUn+q4EgIpR/Ib8zLuQSq14 hFitEobPDMebkBGn3vVRSLvIyWNZYLsewqBPfWtu5RWe7Kdfgc/GaRdvc4qEnCg/l1GZ TJhEUmZFTTyVSsXlrszOoGvx7Cy10KBxLkivL7DiTVEEZKRocdV7Mup6+DDlSQoITBUt m8Dw== X-Forwarded-Encrypted: i=1; AJvYcCXcffxgdT/qInasWK2aDGKWeVcJWuONaJcAuhm2Mz0Ltl6SvfO4AVgoBC+J2Tz+OFddcvv361H8HTpm0zIeAFef@lists.postgresql.org X-Gm-Message-State: AOJu0Yyx5kujHOcY2buCxGx85Dz4RT1RhwPSm7MOlMchY6mAC5ResTDP fsS3mGiO7aZv0YmhMNVVwYKW43ZFmAG17WIFEy0PKqKtfwLBvbQlctB24ISIUcB5D3fhDt76fpg d8gkjr8hg2vPlcctnfh8LPy4VuaoNMfuV67PXWQ== X-Gm-Gg: ASbGncutyCkPd4AH3NAhk4i5ClkBBL/QmZEjOPitY1dTDRGrN1JC47mhEceszFvsuRi hg3GibCB4XKRNKv/advjxSTTLDzn7ArUG2rSM6oSuNyKhVMYGC6xAmgFyw4yOYdfK4Um2JR0kIi tROG0OreHPSmo3c72MKKmQHw== X-Google-Smtp-Source: AGHT+IFqg8YlyePD+yYa4HUS9n3XLR1G9nWPHZGP89T7rMG203TUJ2lmWASGPzINXFV5dnScBqFnn8nfquL+t9UfxeY= X-Received: by 2002:a05:6000:402c:b0:391:43cb:43e6 with SMTP id ffacd0b85a97d-3a074f3a152mr5062221f8f.51.1745726015061; Sat, 26 Apr 2025 20:53:35 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Peter Geoghegan Date: Sat, 26 Apr 2025 23:53:08 -0400 X-Gm-Features: ATxdqUF6fMhpwwB1yXsFWiWZBoC6ivZ6qadHzkFuE0rF_Y71BwPwhUXvsYr4ctE Message-ID: Subject: Re: pgsql: Improve nbtree skip scan primitive scan scheduling. To: Mark Dilger Cc: Matthias van de Meent , pgsql-committers@lists.postgresql.org Content-Type: multipart/mixed; boundary="00000000000000efb00633ba833d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000000efb00633ba833d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Apr 26, 2025 at 10:39=E2=80=AFPM Mark Dilger wrote: > Peter, Matthias, thanks kindly for the good work on skipscans! Thanks! > I found a test case which fails after commit 21a152b37f36c9563d1b0b058fe1= 436baf578b4c. Please find a reproducible test case, attached. The bug isn't actually in commit 21a152b37f36c9563d1b0b058fe1436baf578b4c -- it's just an accident that the mechanism added by that commit happens to make your test case fail. The underlying issue was introduced in commit 8a510275, "Further optimize nbtree search scan key comparisons". This looks to have been a silly oversight in our handling of NULL tuple datums within _bt_check_compare. Attached provisional fix makes your test case pass. --=20 Peter Geoghegan --00000000000000efb00633ba833d Content-Type: application/octet-stream; name="v1-0001-Provisional-fix.patch" Content-Disposition: attachment; filename="v1-0001-Provisional-fix.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m9z44w970 RnJvbSAyOGMyODMwMWZkMTllMWRkMzg4ZjI5Nzk3MWE0Mzc5NDIyYjlhZTViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBHZW9naGVnYW4gPHBnQGJvd3QuaWU+CkRhdGU6IFNh dCwgMjYgQXByIDIwMjUgMjM6NDc6MzQgLTA0MDAKU3ViamVjdDogW1BBVENIIHYxXSBQcm92aXNp b25hbCBmaXgKCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR1dGlscy5jIHwgNCAr KysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL25idHJlZS9uYnR1dGlscy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJl ZS9uYnR1dGlscy5jCmluZGV4IDkzYmRiZWQwNC4uZmZhZDFiZjQ4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L25idHJlZS9uYnR1dGlscy5jCkBAIC0yOTYwLDYgKzI5NjAsMTAgQEAgX2J0X2NoZWNrX2NvbXBh cmUoSW5kZXhTY2FuRGVzYyBzY2FuLCBTY2FuRGlyZWN0aW9uIGRpciwKIAkJCQkJKmNvbnRpbnVl c2NhbiA9IGZhbHNlOwogCQkJfQogCisJCQlpZiAodW5saWtlbHkoZm9yY2Vub25yZXF1aXJlZCAm JiBrZXktPnNrX2ZsYWdzICYgU0tfQlRfU0tJUCkpCisJCQkJcmV0dXJuIF9idF9hZHZhbmNlX2Fy cmF5X2tleXMoc2NhbiwgTlVMTCwgdHVwbGUsIHR1cG5hdHRzLAorCQkJCQkJCQkJCQkgIHR1cGRl c2MsICppa2V5LCBmYWxzZSk7CisKIAkJCS8qCiAJCQkgKiBJbiBhbnkgY2FzZSwgdGhpcyBpbmRl eHR1cGxlIGRvZXNuJ3QgbWF0Y2ggdGhlIHF1YWwuCiAJCQkgKi8KLS0gCjIuNDkuMAoK --00000000000000efb00633ba833d--