pgsql: Fix permission tests for views/tables proven empty by constraint
От | Tom Lane |
---|---|
Тема | pgsql: Fix permission tests for views/tables proven empty by constraint |
Дата | |
Msg-id | E1UXfUZ-0000JA-22@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix permission tests for views/tables proven empty by constraint exclusion. A view defined as "select <something> where false" had the curious property that the system wouldn't check whether users had the privileges necessary to select from it. More generally, permissions checks could be skipped for tables referenced in sub-selects or views that were proven empty by constraint exclusion (although some quick testing suggests this seldom happens in cases of practical interest). This happened because the planner failed to include rangetable entries for such tables in the finished plan. This was noticed in connection with erroneous handling of materialized views, but actually the issue is quite unrelated to matviews. Therefore, revert commit 200ba1667b3a8d7a9d559d2f05f83d209c9d8267 in favor of a more direct test for the real problem. Back-patch to 9.2 where the bug was introduced (by commit 7741dd6590073719688891898e85f0cb73453159). Branch ------ REL9_2_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/15b0421002624919c62ae3c6574af2a8452bf6c4 Modified Files -------------- src/backend/optimizer/path/allpaths.c | 4 ++- src/backend/optimizer/plan/createplan.c | 54 ++++++++++++++++++++++-------- src/test/regress/expected/privileges.out | 5 +++ src/test/regress/sql/privileges.sql | 4 ++ 4 files changed, 52 insertions(+), 15 deletions(-)
В списке pgsql-committers по дате отправления: