postgresql/src/tools
Noah Misch 2e33b43599 Avoid race in RelationBuildDesc() affecting CREATE INDEX CONCURRENTLY.
CIC and REINDEX CONCURRENTLY assume backends see their catalog changes
no later than each backend's next transaction start.  That failed to
hold when a backend absorbed a relevant invalidation in the middle of
running RelationBuildDesc() on the CIC index.  Queries that use the
resulting index can silently fail to find rows.  Fix this for future
index builds by making RelationBuildDesc() loop until it finishes
without accepting a relevant invalidation.  It may be necessary to
reindex to recover from past occurrences; REINDEX CONCURRENTLY suffices.
Back-patch to 9.6 (all supported versions).

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

Discussion: https://postgr.es/m/20210730022548.GA1940096@gust.leadboat.com
2021-10-23 18:36:42 -07:00
..
editors Make Emacs perl-mode indent more like perltidy. 2019-01-13 11:32:31 -08:00
findoidjoins Move connect.h from fe_utils to src/include/common. 2020-08-10 09:22:58 -07:00
ifaddrs Update copyrights for 2020 2020-01-01 12:21:45 -05:00
make_diff Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
msvc Fix build of MSVC with OpenSSL 3.0.0 2021-10-20 16:49:00 +09:00
perlcheck Stop requiring an explicit return from perl subroutines 2020-04-14 16:55:34 -04:00
pginclude Use perl warnings pragma consistently 2020-04-13 11:55:45 -04:00
pgindent Avoid race in RelationBuildDesc() affecting CREATE INDEX CONCURRENTLY. 2021-10-23 18:36:42 -07:00
ccsym tools/ccsym: update for modern versions of gcc 2015-01-20 13:02:58 -05:00
check_bison_recursion.pl Update copyrights for 2020 2020-01-01 12:21:45 -05:00
codelines Fix remaining stray references to CVS. 2010-09-22 19:51:39 -04:00
copyright.pl Remove libpq.rc, use win32ver.rc for libpq 2020-01-15 15:06:12 +01:00
find_badmacros Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
find_static Fix omission of -X (--no-psqlrc) in some psql invocations. 2015-12-28 11:46:43 -05:00
find_typedef Refer to OS X as "macOS", except for the port name which is still "darwin". 2016-09-25 15:40:57 -04:00
fix-old-flex-code.pl Use perl warnings pragma consistently 2020-04-13 11:55:45 -04:00
gen_keywordlist.pl Update copyrights for 2020 2020-01-01 12:21:45 -05:00
git-external-diff Preserve information on use of git-external-diff 2018-05-24 23:45:31 +09:30
git_changelog git_changelog: use modern format for rel branch names in example 2020-04-24 15:16:07 -04:00
make_ctags Improve missing-program error handling in make_ctags and make_etags. 2019-01-13 13:33:50 -05:00
make_etags Improve missing-program error handling in make_ctags and make_etags. 2019-01-13 13:33:50 -05:00
make_mkid Add another pgdefine path check, and a cvs-git change. 2011-08-26 21:52:35 -04:00
PerfectHash.pm Update copyrights for 2020 2020-01-01 12:21:45 -05:00
pgtest pgtest: run clean, build, and check stages separately 2018-07-28 15:34:06 -04:00
RELEASE_CHANGES Update oidjoins regression test for v13. 2020-05-09 13:05:08 -04:00
testint128.c Update copyrights for 2020 2020-01-01 12:21:45 -05:00
valgrind.supp Avoid need for valgrind suppressions for pg_atomic_init_u64 on some platforms. 2020-06-08 20:02:49 -07:00
version_stamp.pl Initial pgindent and pgperltidy run for v13. 2020-05-14 13:06:50 -04:00
win32tzlist.pl Update Windows timezone name list to include currently-known zones. 2020-04-24 17:53:23 -04:00