RLS refactoring
authorStephen Frost <sfrost@snowman.net>
Tue, 15 Sep 2015 19:49:31 +0000 (15:49 -0400)
committerStephen Frost <sfrost@snowman.net>
Tue, 15 Sep 2015 19:49:31 +0000 (15:49 -0400)
commit22eaf35c1d247407b7cf1fffb310a26cd9b9ceb1
tree8cb3df9ac5809a83f0edec142f9d80c129824296
parent000a21336b8e218deb856f73dc8972073cb8a649
RLS refactoring

This refactors rewrite/rowsecurity.c to simplify the handling of the
default deny case (reducing the number of places where we check for and
add the default deny policy from three to one) by splitting up the
retrival of the policies from the application of them.

This also allowed us to do away with the policy_id field.  A policy_name
field was added for WithCheckOption policies and is used in error
reporting, when available.

Patch by Dean Rasheed, with various mostly cosmetic changes by me.

Back-patch to 9.5 where RLS was introduced to avoid unnecessary
differences, since we're still in alpha, per discussion with Robert.
13 files changed:
src/backend/commands/policy.c
src/backend/executor/execMain.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/equalfuncs.c
src/backend/nodes/outfuncs.c
src/backend/nodes/readfuncs.c
src/backend/rewrite/rewriteHandler.c
src/backend/rewrite/rowsecurity.c
src/backend/utils/cache/relcache.c
src/include/nodes/parsenodes.h
src/include/rewrite/rowsecurity.h
src/test/modules/test_rls_hooks/expected/test_rls_hooks.out
src/test/modules/test_rls_hooks/test_rls_hooks.c