postgresql/src/test
Alvaro Herrera 2ee02c98dd
Refuse ATTACH of a table referenced by a foreign key
Trying to attach a table as a partition which is already on the
referenced side of a foreign key on the partitioned table that it is
being attached to, leads to strange behavior: we try to clone the
foreign key from the parent to the partition, but this new FK points to
the partition itself, and the mix of pg_constraint rows and triggers
doesn't behave well.

Rather than trying to untangle the mess (which might be possible given
sufficient time), I opted to forbid the ATTACH.  This doesn't seem a
problematic restriction, given that we already fail to create the
foreign key if you do it the other way around, that is, having the
partition first and the FK second.

Backpatch to all supported branches.

Reported-by: Alexander Lakhin <exclusion@gmail.com>
Reviewed-by: Tender Wang <tndrwang@gmail.com>
Discussion: https://postgr.es/m/18541-628a61bc267cd2d3@postgresql.org
2024-08-08 19:35:13 -04:00
..
authentication Make new authentication test case more robust. 2020-09-04 21:01:59 -04:00
examples Update copyrights for 2020 2020-01-01 12:21:45 -05:00
isolation Remove configuration-dependent output from new inplace-inval test. 2024-06-28 09:33:44 -07:00
kerberos Don't clobber test exit code at cleanup in LDAP/Kerberors tests 2024-04-07 20:26:22 +03:00
ldap Don't clobber test exit code at cleanup in LDAP/Kerberors tests 2024-04-07 20:26:22 +03:00
locale Use perl warnings pragma consistently 2020-04-13 11:55:45 -04:00
mb Fix MB regression tests for WAL-logging of hash indexes. 2017-03-15 07:25:36 -04:00
modules Clean out column-level pg_init_privs entries when dropping tables. 2024-06-14 16:20:35 -04:00
perl Teach RPM the package name provided in Perl alias packages. 2024-08-07 11:43:40 -07:00
recovery Avoid error in recovery test if history file is not yet present 2024-07-17 10:42:23 -04:00
regress Refuse ATTACH of a table referenced by a foreign key 2024-08-08 19:35:13 -04:00
ssl Force nodes for SSL tests to start in TCP mode 2024-07-08 11:40:58 -04:00
subscription Ignore generated columns during apply of update/delete. 2023-03-23 11:21:13 +05:30
thread Update copyrights for 2020 2020-01-01 12:21:45 -05:00
Makefile Revert "Allow on-line enabling and disabling of data checksums" 2018-04-09 19:03:42 +02:00
README Add TAP tests for password-based authentication methods. 2017-03-17 11:34:16 +02: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

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

isolation/
  Tests for concurrent behavior at the SQL level

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

thread/
  A thread-safety-testing utility used by configure