Thread: pgsql: Fix CREATE INDEX CONCURRENTLY so that it won't use synchronized

pgsql: Fix CREATE INDEX CONCURRENTLY so that it won't use synchronized

From
tgl@postgresql.org (Tom Lane)
Date:
Log Message:
-----------
Fix CREATE INDEX CONCURRENTLY so that it won't use synchronized scan for
its second pass over the table.  It has to start at block zero, else the
"merge join" logic for detecting which TIDs are already in the index
doesn't work.  Hence, extend heapam.c's API so that callers can enable or
disable syncscan.  (I put in an option to disable buffer access strategy,
too, just in case somebody needs it.)  Per report from Hannes Dorbath.

Modified Files:
--------------
    pgsql/src/backend/access/heap:
        heapam.c (r1.247 -> r1.248)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/heap/heapam.c?r1=1.247&r2=1.248)
    pgsql/src/backend/catalog:
        index.c (r1.290 -> r1.291)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/index.c?r1=1.290&r2=1.291)
    pgsql/src/include/access:
        heapam.h (r1.129 -> r1.130)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/heapam.h?r1=1.129&r2=1.130)
        relscan.h (r1.59 -> r1.60)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/relscan.h?r1=1.59&r2=1.60)