Remove INSERT privilege check at table creation of CTAS and matview
authorMichael Paquier <michael@paquier.xyz>
Sat, 21 Nov 2020 10:45:30 +0000 (19:45 +0900)
committerMichael Paquier <michael@paquier.xyz>
Sat, 21 Nov 2020 10:45:30 +0000 (19:45 +0900)
commit878f3a19c6c8ff197e4a33f51d921a4abafcc494
treeb895e7f7b5e4183e8837d5e13af823a78df6b78e
parenta47834db0fb70256e676862f1d96374a9e114d82
Remove INSERT privilege check at table creation of CTAS and matview

As per discussion with Peter Eisentraunt, the SQL standard specifies
that any tuple insertion done as part of CREATE TABLE AS happens without
any extra ACL check, so it makes little sense to keep a check for INSERT
privileges when using WITH DATA.  Materialized views are not part of the
standard, but similarly, this check can be confusing as this refers to
an access check on a table created within the same command as the one
that would insert data into this table.

This commit removes the INSERT privilege check for WITH DATA, the
default, that 846005e removed partially, but only for WITH NO DATA.

Author: Bharath Rupireddy
Discussion: https://postgr.es/m/d049c272-9a47-d783-46b0-46665b011598@enterprisedb.com
doc/src/sgml/ref/create_materialized_view.sgml
doc/src/sgml/ref/create_table_as.sgml
src/backend/commands/createas.c
src/test/regress/expected/matview.out
src/test/regress/expected/select_into.out
src/test/regress/sql/matview.sql
src/test/regress/sql/select_into.sql