postgresql/src/include/storage
Noah Misch 3cd9c3b921 Fix CREATE INDEX CONCURRENTLY for the newest prepared transactions.
The purpose of commit 8a54e12a38 was to
fix this, and it sufficed when the PREPARE TRANSACTION completed before
the CIC looked for lock conflicts.  Otherwise, things still broke.  As
before, in a cluster having used CIC while having enabled prepared
transactions, queries that use the resulting index can silently fail to
find rows.  It may be necessary to reindex to recover from past
occurrences; REINDEX CONCURRENTLY suffices.  Fix this for future index
builds by making CIC wait for arbitrarily-recent prepared transactions
and for ordinary transactions that may yet PREPARE TRANSACTION.  As part
of that, have PREPARE TRANSACTION transfer locks to its dummy PGPROC
before it calls ProcArrayClearTransaction().  Back-patch to 9.6 (all
supported versions).

Andrey Borodin, reviewed (in earlier versions) by Andres Freund.

Discussion: https://postgr.es/m/01824242-AA92-4FE9-9BA7-AEBAFFEA3D0C@yandex-team.ru
2021-10-23 18:36:38 -07:00
..
.gitignore
backendid.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
barrier.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
block.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
buf_internals.h Improve comment for struct BufferDesc. 2021-03-11 16:38:45 +13:00
buf.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
buffile.h Optimize fileset usage in apply worker. 2021-09-02 08:13:46 +05:30
bufmgr.h process startup: Always call Init[Auxiliary]Process() before BaseInit(). 2021-08-05 15:36:59 -07:00
bufpage.h Truncate line pointer array during VACUUM. 2021-04-07 08:47:15 -07:00
checksum_impl.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
checksum.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
condition_variable.h Replace buffer I/O locks with condition variables. 2021-03-11 10:36:17 +13:00
copydir.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
dsm_impl.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
dsm.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
fd.h Move temporary file cleanup to before_shmem_exit(). 2021-08-07 19:20:47 -07:00
fileset.h Refactor sharedfileset.c to separate out fileset implementation. 2021-08-30 08:48:15 +05:30
freespace.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
fsm_internals.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
indexfsm.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
ipc.h Introduce GUC shared_memory_size 2021-09-08 12:02:30 +09:00
item.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
itemid.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
itemptr.h Add TID Range Scans to support efficient scanning ranges of TIDs 2021-02-27 22:59:36 +13:00
large_object.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
latch.h Add support for asynchronous execution. 2021-03-31 18:45:00 +09:00
lmgr.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
lock.h Fix CREATE INDEX CONCURRENTLY for the newest prepared transactions. 2021-10-23 18:36:38 -07:00
lockdefs.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
lwlock.h Replace buffer I/O locks with condition variables. 2021-03-11 10:36:17 +13:00
md.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
off.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_sema.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_shmem.h Introduce GUC shared_memory_size_in_huge_pages 2021-09-21 10:31:58 +09:00
pmsignal.h Make archiver process an auxiliary process. 2021-03-15 13:13:14 +09:00
predicate_internals.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
predicate.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
proc.h Initial pgindent and pgperltidy run for v14. 2021-05-12 13:14:10 -04:00
procarray.h Detect the deadlocks between backends and the startup process. 2021-01-06 12:39:18 +09:00
proclist_types.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
proclist.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
procsignal.h Add function to log the memory contexts of specified backend process. 2021-04-06 13:44:15 +09:00
reinit.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
relfilenode.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
s_lock.h Add RISC-V spinlock support in s_lock.h. 2021-08-13 13:59:43 -04:00
sharedfileset.h Refactor sharedfileset.c to separate out fileset implementation. 2021-08-30 08:48:15 +05:30
shm_mq.h shm_mq: Update mq_bytes_written less often. 2021-10-14 16:13:36 -04:00
shm_toc.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
shmem.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
sinval.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
sinvaladt.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
smgr.h Optimize DropRelFileNodeBuffers() for recovery. 2021-01-12 07:45:40 +05:30
spin.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
standby.h Use full 64-bit XIDs in deleted nbtree pages. 2021-02-24 18:41:34 -08:00
standbydefs.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
sync.h Run checkpointer and bgwriter in crash recovery. 2021-08-02 17:32:44 +12:00