Make inherited TRUNCATE perform access permission checks on parent table only.
authorFujii Masao <fujii@postgresql.org>
Thu, 30 Jan 2020 15:42:06 +0000 (00:42 +0900)
committerFujii Masao <fujii@postgresql.org>
Thu, 30 Jan 2020 15:42:06 +0000 (00:42 +0900)
commite6f1e560e4c6e764080af8c8d5e76cdea4d8d00a
treea2037ccf960060e656648e0a6a4dd49eb4a15276
parentb0afdcad21fde1470e6502a376bfaf0e10d384fa
Make inherited TRUNCATE perform access permission checks on parent table only.

Previously, TRUNCATE command through a parent table checked the
permissions on not only the parent table but also the children tables
inherited from it. This was a bug and inherited queries should perform
access permission checks on the parent table only. This commit fixes
that bug.

Back-patch to all supported branches.

Author: Amit Langote
Reviewed-by: Fujii Masao
Discussion: https://postgr.es/m/CAHGQGwFHdSvifhJE+-GSNqUHSfbiKxaeQQ7HGcYz6SC2n_oDcg@mail.gmail.com
src/backend/commands/tablecmds.c
src/test/regress/expected/privileges.out
src/test/regress/sql/privileges.sql