pgsql: Collect the global OR of hasRowSecurity flags for plancache

Поиск
Список
Период
Сортировка
От Stephen Frost
Тема pgsql: Collect the global OR of hasRowSecurity flags for plancache
Дата
Msg-id E1a8e47-0000mK-Uh@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Collect the global OR of hasRowSecurity flags for plancache

We carry around information about if a given query has row security or
not to allow the plancache to use that information to invalidate a
planned query in the event that the environment changes.

Previously, the flag of one of the subqueries was simply being copied
into place to indicate if the query overall included RLS components.
That's wrong as we need the global OR of all subqueries.  Fix by
changing the code to match how fireRIRules works, which is results
in OR'ing all of the flags.

Noted by Tom.

Back-patch to 9.5 where RLS was introduced.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/e5e11c8cca7ae298895430102217fa6d77cfb2a3

Modified Files
--------------
src/backend/optimizer/plan/planner.c      |    3 +-
src/backend/optimizer/plan/setrefs.c      |    3 +-
src/test/regress/expected/rowsecurity.out |  154 ++++++++++++++++++++++++++++-
src/test/regress/sql/rowsecurity.sql      |   24 ++++-
4 files changed, 180 insertions(+), 4 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Add missing cleanup logic in pg_rewind/t/005_same_timeline.pl te
Следующее
От: Stephen Frost
Дата:
Сообщение: pgsql: Collect the global OR of hasRowSecurity flags for plancache