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 1qPLOA-00AjSE-7B for pgsql-hackers@arkaria.postgresql.org; Fri, 28 Jul 2023 11:12: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 1qPLO8-00FPu6-Jq for pgsql-hackers@arkaria.postgresql.org; Fri, 28 Jul 2023 11:12:04 +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 1qPLO8-00FPty-7W for pgsql-hackers@lists.postgresql.org; Fri, 28 Jul 2023 11:12:04 +0000 Received: from mail-oo1-xc30.google.com ([2607:f8b0:4864:20::c30]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1qPLO5-000rx2-HC for pgsql-hackers@lists.postgresql.org; Fri, 28 Jul 2023 11:12:03 +0000 Received: by mail-oo1-xc30.google.com with SMTP id 006d021491bc7-56c4c4e822eso1084041eaf.3 for ; Fri, 28 Jul 2023 04:12:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1690542720; x=1691147520; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=zLDHC0BEybU6alHYtAxD7JNG/T0DSG2oEJKGPlNt26E=; b=SlGoMdu/ZWs42lwigMoCEwrsmkhpJwkN8GvmGA0AcHgcmjK1Qj9p5ftrG/MON/VV0E dcOLtzft/46V1C+8EBQqRObc2RP0yh+kHgaefFvjiWEhUBa4CnyaUy/7tF19ocE8c9C3 v55/RG5n9qhkf2q0HLPgfSn54N7uSRGtB4A3KisfyH9mA8l8sm1q5DijmrV1RwoTKfIK uQ6WhPp9ShvnmlB8k+ES+4Ar1Ya931tLymBa0ro4igS/CJkMX1LZWo7o51//D37yUi63 M5YoTg6qky/wV8lNqxAyedCga94U3tAG4AJLPS3PqA90gDugQ92fMb+37TjzpazaOHi/ Jlcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690542720; x=1691147520; h=content-transfer-encoding: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=zLDHC0BEybU6alHYtAxD7JNG/T0DSG2oEJKGPlNt26E=; b=egIR3JRpZhukz7c9iNALbUUu5G8iiDs1Gq8A+lJEZJPTETNGD+TP2b8FiriAhHn3jF kdPRcF6Ivcs+ospPDI/pZBhHlShN5Y3BvXfWH6qkXJ1eEJgR81aT8AAi9NnMRoiufwut r94dl+xj5BOrKFbMCcS29a+pn3zvO7RSfgIDK+ZPRZQf17of6lE4xY/t7wQ31kKlFqD3 Lm6PQX4bIM5ILKAqJO4alA2PzvpeeED2n7yQOjN+TjSZVh6LEVinePvbWStUK2XuS9P9 O2v8GSW0XsVqTVuJuNALfD+NxKY/hNrpJEjeL0y0OHU/RzAz5sXPaW1LNShpm/roxjZP Fcug== X-Gm-Message-State: ABy/qLaDjpTve/eO56GBs8Oflc40meTimUkueJqATh0rCNKiqhkV0vhf kw8m/Nrs06UKLmfNg/bAbmnXneNVwXSwom/xbkk= X-Google-Smtp-Source: APBJJlErNFh0rh2DnV+ppxukweYx9lch0+axZrkFF2sqy6PLwnoFXWXrSUOV8EjQbLz82dm+rP6/zf7QUuG5ZmDkZ2g= X-Received: by 2002:a05:6808:15a1:b0:3a1:eb15:5ec4 with SMTP id t33-20020a05680815a100b003a1eb155ec4mr2577951oiw.42.1690542719758; Fri, 28 Jul 2023 04:11:59 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Matthias van de Meent Date: Fri, 28 Jul 2023 13:11:47 +0200 Message-ID: Subject: Re: Optimizing nbtree ScalarArrayOp execution, allowing multi-column ordered scans, skip scan To: Peter Geoghegan Cc: PostgreSQL Hackers , Tom Lane , Tomas Vondra , Jeff Davis , benoit Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Thu, 27 Jul 2023 at 16:01, Peter Geoghegan wrote: > > On Thu, Jul 27, 2023 at 7:59=E2=80=AFAM Matthias van de Meent > wrote: > > > Basically, the patch that added that feature had to revise the index > > > AM API, in order to support a mode of operation where scans return > > > groupings rather than tuples. Whereas this patch requires none of > > > that. It makes affected index scans as similar as possible to > > > conventional index scans. > > > > Hmm, yes. I see now where my confusion started. You called it out in > > your first paragraph of the original mail, too, but that didn't help > > me then: > > > > The wiki does not distinguish "Index Skip Scans" and "Loose Index > > Scans", but these are not the same. > > A lot of people (myself included) were confused on this point for > quite a while. I've taken the liberty to update the "Loose indexscan" wiki page [0], adding detail that Loose indexscans are distinct from Skip scans, and showing some high-level distinguishing properties. I also split the TODO entry for `` "loose" or "skip" scan `` into two, and added links to the relevant recent threads so that it's clear these are different (and that some previous efforts may have had a confusing name). I hope this will reduce the chance of future confusion between the two different approaches to improving index scan performance. Kind regards, Matthias van de Meent Neon (https://neon.tech) [0]: https://wiki.postgresql.org/wiki/Loose_indexscan