Thread: pgsql: Fix possible duplicate tuples while GiST scan.

pgsql: Fix possible duplicate tuples while GiST scan.

From
teodor@postgresql.org (Teodor Sigaev)
Date:
Log Message:
-----------
Fix possible duplicate tuples while  GiST scan. Now page is processed
at once and ItemPointers are collected in memory.

Remove tuple's killing by killtuple() if tuple was moved to another
page - it could produce unaceptable overhead.

Backpatch up to 8.1 because the bug was introduced by GiST's concurrency support.

Tags:
----
REL8_3_STABLE

Modified Files:
--------------
    pgsql/src/backend/access/gist:
        gistget.c (r1.69 -> r1.69.2.1)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gist/gistget.c?r1=1.69&r2=1.69.2.1)
        gistscan.c (r1.68 -> r1.68.2.1)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/gist/gistscan.c?r1=1.68&r2=1.68.2.1)
    pgsql/src/include/access:
        gist_private.h (r1.28 -> r1.28.2.1)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/access/gist_private.h?r1=1.28&r2=1.28.2.1)