postgresql/src/test
Tom Lane 529ebb20aa Generate EquivalenceClass members for partitionwise child join rels.
Commit d25ea0127 got rid of what I thought were entirely unnecessary
derived child expressions in EquivalenceClasses for EC members that
mention multiple baserels.  But it turns out that some of the child
expressions that code created are necessary for partitionwise joins,
else we fail to find matching pathkeys for Sort nodes.  (This happens
only for certain shapes of the resulting plan; it may be that
partitionwise aggregation is also necessary to show the failure,
though I'm not sure of that.)

Reverting that commit entirely would be quite painful performance-wise
for large partition sets.  So instead, add code that explicitly
generates child expressions that match only partitionwise child join
rels we have actually generated.

Per report from Justin Pryzby.  (Amit Langote noticed the problem
earlier, though it's not clear if he recognized then that it could
result in a planner error, not merely failure to exploit partitionwise
join, in the code as-committed.)  Back-patch to v12 where commit
d25ea0127 came in.

Amit Langote, with lots of kibitzing from me

Discussion: https://postgr.es/m/CA+HiwqG2WVUGmLJqtR0tPFhniO=H=9qQ+Z3L_ZC+Y3-EVQHFGg@mail.gmail.com
Discussion: https://postgr.es/m/20191011143703.GN10470@telsasoft.com
2019-11-05 11:42:24 -05:00
..
authentication Fix use of term "verifier" 2019-10-12 21:41:59 +02:00
examples Fix example program in docs too (??) 2019-09-18 16:54:11 -03:00
isolation Make the order of the header file includes consistent in non-backend modules. 2019-10-25 07:41:52 +05:30
kerberos Save Kerberos and LDAP daemon logs where the buildfarm can find them. 2019-08-06 17:08:07 -04:00
ldap Be more careful about port selection in src/test/ldap/. 2019-09-09 14:21:40 -04:00
locale Make sort-test.py Python 3 compatible 2019-01-04 11:23:24 +01:00
mb Fix MB regression tests for WAL-logging of hash indexes. 2017-03-15 07:25:36 -04:00
modules Refactor code building relation options 2019-11-05 09:17:05 +09:00
perl Suppress another CR in program output 2019-09-30 15:51:14 -04:00
recovery Remove temporary WAL and history files at the end of archive recovery 2019-10-02 15:53:07 +09:00
regress Generate EquivalenceClass members for partitionwise child join rels. 2019-11-05 11:42:24 -05:00
ssl Fix SSL test for libpq connection parameter channel_binding 2019-09-30 13:11:31 +09:00
subscription Initial pgperltidy run for v12. 2019-05-22 13:36:19 -04:00
thread Fix inconsistencies and typos in the tree, take 11 2019-08-19 16:21:39 +09: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