postgresql/src/test
Tom Lane a742ecf9c6 Cope with lateral references in the quals of a subquery RTE.
The qual pushdown logic assumed that all Vars in a restriction clause
must be Vars referencing subquery outputs; but since we introduced
LATERAL, it's possible for such a Var to be a lateral reference instead.
This led to an assertion failure in debug builds.  In a non-debug
build, there might be no ill effects (if qual_is_pushdown_safe decided
the qual was unsafe anyway), or we could get failures later due to
construction of an invalid plan.  I've not gone to much length to
characterize the possible failures, but at least segfaults in the
executor have been observed.

Given that this has been busted since 9.3 and it took this long for
anybody to notice, I judge that the case isn't worth going to great
lengths to optimize.  Hence, fix by just teaching qual_is_pushdown_safe
that such quals are unsafe to push down, matching the previous behavior
when it accidentally didn't fail.

Per report from Tom Ellis.  Back-patch to all supported branches.

Discussion: https://postgr.es/m/20200713175124.GQ8220@cloudinit-builder
2020-07-13 20:38:20 -04:00
..
authentication tap tests: replace 'master' with 'primary'. 2020-07-08 12:39:56 -07:00
examples Update copyrights for 2020 2020-01-01 12:21:45 -05:00
isolation Avoid update conflict out serialization anomalies. 2020-06-11 10:09:47 -07:00
kerberos Extensive code review for GSSAPI encryption mechanism. 2020-01-11 17:14:08 -05:00
ldap Update copyrights for 2020 2020-01-01 12:21:45 -05: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 Fix timestamp range handling in regression tests of modules/commit_ts/ 2020-07-13 10:54:26 +09:00
perl Further tighten Windows CRLF conversion in our TAP test scripts. 2020-07-09 11:37:21 -04:00
recovery tap tests: replace 'master' with 'primary'. 2020-07-08 12:39:56 -07:00
regress Cope with lateral references in the quals of a subquery RTE. 2020-07-13 20:38:20 -04:00
ssl tap tests: replace 'master' with 'primary'. 2020-07-08 12:39:56 -07:00
subscription Fix assertion with relation using REPLICA IDENTITY FULL in subscriber 2020-05-16 18:15:18 +09:00
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