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 1sjqo6-004lWa-Rs for pgsql-general@arkaria.postgresql.org; Fri, 30 Aug 2024 01:52:10 +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 1sjqo4-00Bg8d-6m for pgsql-general@arkaria.postgresql.org; Fri, 30 Aug 2024 01:52:08 +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.94.2) (envelope-from ) id 1sjqo3-00Bg8V-RS for pgsql-general@lists.postgresql.org; Fri, 30 Aug 2024 01:52:08 +0000 Received: from mail-oo1-xc2e.google.com ([2607:f8b0:4864:20::c2e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sjqnx-0026QF-LW for pgsql-general@postgresql.org; Fri, 30 Aug 2024 01:52:07 +0000 Received: by mail-oo1-xc2e.google.com with SMTP id 006d021491bc7-5d5e97b8a22so748889eaf.2 for ; Thu, 29 Aug 2024 18:52:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1724982720; x=1725587520; darn=postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=8wQlKytybIybiBvUPPdAINeLMZXPZZfNJ+XTqwz4e1g=; b=JPeiRHXlHVWXJw3MHMlnEaQEGDDt9AnEgJtgxp0lsjb41sjzsLKQtc6pwplRD57C+d l6LJXhUdjTbi/gcHZUi4GIalxY6CxstTXCMyAShvI1MOEo7lXLZNIZYJuEUT50QKul4F X2fjxz+CsqSZHryBVZKLad/LxH032h/vcojp/N3zSmSaK2LbCzIa/0XYWrfKZ60TxWe4 TqpOZBjCqTYZvonGGKU0lR2uwn9INRd8E6Adch80JnQPyd81XhkI2uhqqk6aYjT3NQQ8 207u3AjdZ86RnFWRXHkR/cxCDfkYo3bI9MiRWF3m1zEWXsWYmsjqSls66LfMyOqO7kn9 5pXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724982720; x=1725587520; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=8wQlKytybIybiBvUPPdAINeLMZXPZZfNJ+XTqwz4e1g=; b=tKMNy50boSAxq4VR7PWlFqbZuJgTMvlWGzklSesLbRZm2mccuZTIA8DCQ3LhMf7ukF m36/GStR+bqeUfDNmRPvNoVQU61uRd7Qv3YIzhmyvC/0xHmvWxNnNURKlun1+nC/7Yum /6anxbillL6Lc6u//MFVv/dee+6ppvJtYhf7CCZacOO0LxRmEdtdyu+i1xvhC8AeX6D9 LZxsRbRwSIz1lkIk/hkDrylQLquwMrGi1xJCubtvCbrZ8s9z8UZ8M7BF1wmYL4vPmlSk l95L/Pqn3BLZ0v7tNHq5NpSnroW1CxPWhEuE6LOvbhXUCqFN8mgPdq8nuqk2vQEXPDhv a3Gw== X-Gm-Message-State: AOJu0YzkErPW0fK+Pe5Hond5ipmCkpCZcT9wjzZemE2aVEspIGvL+O0x DTBrFLAb0qzF/VsOkKmGhP0gfIOlpSt3HJQ8KnaqsWgXOypI7/utTUK3JNujJa3bmR5C9vLm1OY tCZXqnl+1bqIdvubNuTJO8rHLRsxrArP6 X-Google-Smtp-Source: AGHT+IEdapQeDLy8KsIUjkPWuLezW5qfx7GNjqrI9XzmuK7zir1DWWMIagVRKGZ97qubskJn3eGfQZLXwoYWmwgh1LE= X-Received: by 2002:a05:6820:1e13:b0:5df:849b:9d32 with SMTP id 006d021491bc7-5dfacda1dc3mr868415eaf.1.1724982720510; Thu, 29 Aug 2024 18:52:00 -0700 (PDT) MIME-Version: 1.0 From: Morris de Oryx Date: Fri, 30 Aug 2024 11:51:51 +1000 Message-ID: Subject: Remedial C: Does an ltree GiST index *ever* set recheck to true? To: pgsql-general Content-Type: multipart/alternative; boundary="0000000000004cc5e10620dcd643" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000004cc5e10620dcd643 Content-Type: text/plain; charset="UTF-8" I'm trying to determine if an ltree GiST index search *ever *needs to load a row out of heap for a recheck, of if the index entry itself includes enough information for a definitive answer. I believe that this is controlled by the recheck flag in the consistency function. From what I've seen in the wild, and can sort out from the source, I think that ltree does *not* need to load rows from heap. https://github.com/postgres/postgres/blob/master/contrib/ltree/ltree_gist.c I wonder because an ltree GiST index is "lossy" and this behavior is more like a lossless strategy. I think that's either because I've misunderstood what "lossy" means in this case, or it's because ltree GiST index *pages *are based on a signature (lossy), while ltree GiST index *leaf entries* contain the full tree/path (lossless.) Can anyone confirm or deny for me? I'd be grateful for the certainty. --0000000000004cc5e10620dcd643 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I'm trying to determine if an ltree=C2=A0GiST index search ever needs to load a row out of= heap for a recheck, of if the index entry itself includes enough informati= on for a definitive answer. I believe that this is controlled=C2=A0by the <= font face=3D"monospace">recheck flag in the consistency=C2=A0functio= n.

From what I've seen in the wild, and can sort out= from the source, I think that=C2=A0l= tree=C2=A0does not need to load rows from heap.=C2=A0


I wonder b= ecause an=C2=A0ltree=C2=A0GiST= index is "lossy" and this=C2=A0behavior is more like a lossless = strategy. I think that's either because I've misunderstood what &qu= ot;lossy" means in this case, or it's because=C2=A0ltree=C2=A0GiST index=C2=A0pages are b= ased on a signature (lossy), while=C2=A0ltree=C2=A0GiST index=C2=A0leaf entries=C2=A0contain the full=C2=A0tree/path (loss= less.)

Can anyone confirm or deny for me? I= 'd be grateful for the certainty.
--0000000000004cc5e10620dcd643--