postgresql/src/test
Noah Misch aac2c9b4fd For inplace update durability, make heap_update() callers wait.
The previous commit fixed some ways of losing an inplace update.  It
remained possible to lose one when a backend working toward a
heap_update() copied a tuple into memory just before inplace update of
that tuple.  In catalogs eligible for inplace update, use LOCKTAG_TUPLE
to govern admission to the steps of copying an old tuple, modifying it,
and issuing heap_update().  This includes MERGE commands.  To avoid
changing most of the pg_class DDL, don't require LOCKTAG_TUPLE when
holding a relation lock sufficient to exclude inplace updaters.
Back-patch to v12 (all supported versions).  In v13 and v12, "UPDATE
pg_class" or "UPDATE pg_database" can still lose an inplace update.  The
v14+ UPDATE fix needs commit 86dc90056d,
and it wasn't worth reimplementing that fix without such infrastructure.

Reviewed by Nitin Motiani and (in earlier versions) Heikki Linnakangas.

Discussion: https://postgr.es/m/20231027214946.79.nmisch@google.com
2024-09-24 15:25:18 -07:00
..
authentication Fix an assortment of typos 2024-05-04 02:33:25 +12:00
examples Update copyright for 2024 2024-01-03 20:49:05 -05:00
icu Address more review comments on commit 2d819a08a1. 2024-03-18 11:58:13 -07:00
isolation For inplace update durability, make heap_update() callers wait. 2024-09-24 15:25:18 -07:00
kerberos Move Kerberos module 2024-04-08 02:49:30 +03:00
ldap ldapurl is supported with simple bind 2024-07-23 10:17:55 +02:00
locale Update copyright for 2024 2024-01-03 20:49:05 -05:00
mb Fix MB regression tests for WAL-logging of hash indexes. 2017-03-15 07:25:36 -04:00
modules Fix data loss at inplace update after heap_update(). 2024-09-24 15:25:18 -07:00
perl Add parameter "connstr" to PostgreSQL::Test::Cluster::background_psql 2024-09-20 09:59:22 +09:00
recovery Extend PgStat_HashKey.objid from 4 to 8 bytes 2024-09-18 12:44:15 +09:00
regress Add ONLY support for VACUUM and ANALYZE 2024-09-24 18:03:40 +12:00
ssl Use library functions to edit config in SSL tests 2024-09-03 18:57:56 +02:00
subscription Collect statistics about conflicts in logical replication. 2024-09-04 08:55:21 +05:30
Makefile Refactor PG_TEST_EXTRA logic in autoconf build 2022-09-20 11:24:16 -07:00
meson.build Move libpq encryption negotiation tests 2024-04-12 19:52:37 +03:00
README Remove the option to build thread_test.c outside configure. 2020-10-21 12:08:48 -04:00

PostgreSQL tests
================

This directory contains a variety of test infrastructure as well as some of the
tests in PostgreSQL. Not all tests are here -- in particular, there are more in
individual contrib/ modules and in src/bin.

Not all these tests get run by "make check". Check src/test/Makefile to see
which tests get run automatically.

authentication/
  Tests for authentication (but see also below)

examples/
  Demonstration programs for libpq that double as regression tests via
  "make check"

isolation/
  Tests for concurrent behavior at the SQL level

kerberos/
  Tests for Kerberos/GSSAPI authentication and encryption

ldap/
  Tests for LDAP-based authentication

locale/
  Sanity checks for locale data, encodings, etc

mb/
  Tests for multibyte encoding (UTF-8) support

modules/
  Extensions used only or mainly for test purposes, generally not suitable
  for installing in production databases

perl/
  Infrastructure for Perl-based TAP tests

recovery/
  Test suite for recovery and replication

regress/
  PostgreSQL's main regression test suite, pg_regress

ssl/
  Tests to exercise and verify SSL certificate handling

subscription/
  Tests for logical replication