CREATE INDEX: use the original userid for more ACL checks.
Commit a117cebd638dd02e5c2e791c25e43745f233111b used the original userid
for ACL checks located directly in DefineIndex(), but it still adopted
the table owner userid for more ACL checks than intended. That broke
dump/reload of indexes that refer to an operator class, collation, or
exclusion operator in a schema other than "public" or "pg_catalog".
Back-patch to v10 (all supported versions), like the earlier commit.
Nathan Bossart and Noah Misch
Discussion: https://postgr.es/m/f8a4105f076544c180a87ef0c4822352@stmuk.bayern.de
Branch
------
REL_11_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/6d49cc28613b81c96f1c0e8891515e8f0aeafb61
Modified Files
--------------
contrib/citext/Makefile | 2 +-
contrib/citext/expected/create_index_acl.out | 81 ++++++++++++++++++++++++
contrib/citext/sql/create_index_acl.sql | 82 ++++++++++++++++++++++++
src/backend/commands/indexcmds.c | 94 ++++++++++++++++++++++++----
4 files changed, 245 insertions(+), 14 deletions(-)