Thread: pgsql-server/src/backend/utils/time tqual.c

pgsql-server/src/backend/utils/time tqual.c

From
tgl@svr1.postgresql.org (Tom Lane)
Date:
CVSROOT:    /cvsroot
Module name:    pgsql-server
Changes by:    tgl@svr1.postgresql.org    03/09/21 21:47:23

Modified files:
    src/backend/utils/time: tqual.c

Log message:
    HeapTupleSatisfiesVacuum() needs to be more careful about the
    difference between INSERT_IN_PROGRESS and DELETE_IN_PROGRESS for
    tuples inserted and then deleted by a concurrent transaction.
    Example of bug:
    regression=# create table foo (f1 int);
    CREATE TABLE
    regression=# begin;
    BEGIN
    regression=# insert into foo values(1);
    INSERT 195531 1
    regression=# delete from foo;
    DELETE 1
    regression=# insert into foo values(1);
    INSERT 195532 1
    regression=# create unique index fooi on foo(f1);
    ERROR:  could not create unique index
    DETAIL:  Table contains duplicated values.