postgresql/src/test
Michael Paquier 846005e4f3 Relax INSERT privilege requirement for CTAS and matviews WITH NO DATA
When specified, WITH NO DATA does not insert any data into the relation
created, so skip checking for the insert permissions.  With WITH DATA or
WITH NO DATA, it is always required for the user to have CREATE
privileges on the schema targeted for the relation.

Note that plain CREATE TABLE AS or CREATE MATERIALIZED VIEW queries have
begun to work accidentally without INSERT privilege checks as of
874fe3ae, while using EXECUTE or EXPLAIN ANALYZE would fail with the ACL
check, so this makes the behavior for all the command flavors consistent
with each other.  This is arguably a bug fix, but there have been no
complaints about the current behavior either so stable branches are not
changed.

While on it, document properly the privileges requirements for each
commands with more tests for all the scenarios possible, and avoid a
useless bulk-insert allocation when using WITH NO DATA.

Author: Bharath Rupireddy
Reviewed-by: Anastasia Lubennikova, Michael Paquier
Discussion: https://postgr.es/m/CALj2ACWc3N8j0_9nMPz9wcAUnVcdKHzFdDZJ3hVFNEbqtcyG9w@mail.gmail.com
2020-11-16 11:52:40 +09:00
..
authentication Make new authentication test case more robust. 2020-09-04 21:01:58 -04:00
examples Update copyrights for 2020 2020-01-01 12:21:45 -05:00
isolation Centralize horizon determination for temp tables, fixing bug due to skew. 2020-10-28 18:02:31 -07:00
kerberos Correct several behavior descriptions in comments. 2020-08-15 20:21:52 -07:00
ldap Fix rare failure in LDAP tests. 2020-08-03 12:49:36 +12:00
locale Track collation versions for indexes. 2020-11-03 01:19:50 +13:00
mb Fix MB regression tests for WAL-logging of hash indexes. 2017-03-15 07:25:36 -04:00
modules Improve our ability to regurgitate SQL-syntax function calls. 2020-11-04 12:34:50 -05:00
perl Use croak instead of die in Perl code when appropriate 2020-10-22 13:41:28 +02:00
recovery Revert pg_relation_check_pages() 2020-11-04 10:21:46 +09:00
regress Relax INSERT privilege requirement for CTAS and matviews WITH NO DATA 2020-11-16 11:52:40 +09:00
ssl Fix test for error message change 2020-11-08 07:50:15 +01:00
subscription Fix query in new test to check tables are synced 2020-10-15 09:48:36 -03:00
Makefile Track collation versions for indexes. 2020-11-03 01:19:50 +13: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