mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-06 19:29:21 +02:00
6550b901fe
Buildfarm member tick identified an issue where the policies in the relcache for a relation were were being replaced underneath a running query, leading to segfaults while processing the policies to be added to a query. Similar to how TupleDesc RuleLocks are handled, add in a equalRSDesc() function to check if the policies have actually changed and, if not, swap back the rsdesc field (using the original instead of the temporairly built one; the whole structure is swapped and then specific fields swapped back). This now passes a CLOBBER_CACHE_ALWAYS for me and should resolve the buildfarm error. In addition to addressing this, add a new chapter in Data Definition under Privileges which explains row security and provides examples of its usage, change \d to always list policies (even if row security is disabled- but note that it is disabled, or enabled with no policies), rework check_role_for_policy (it really didn't need the entire policy, but it did need to be using has_privs_of_role()), and change the field in pg_class to relrowsecurity from relhasrowsecurity, based on Heikki's suggestion. Also from Heikki, only issue SET ROW_SECURITY in pg_restore when talking to a 9.5+ server, list Bypass RLS in \du, and document --enable-row-security options for pg_dump and pg_restore. Lastly, fix a number of minor whitespace and typo issues from Heikki, Dimitri, add a missing #include, per Peter E, fix a few minor variable-assigned-but-not-used and resource leak issues from Coverity and add tab completion for role attribute bypassrls as well. |
||
---|---|---|
.. | ||
access | ||
bootstrap | ||
catalog | ||
commands | ||
common | ||
datatype | ||
executor | ||
foreign | ||
lib | ||
libpq | ||
mb | ||
nodes | ||
optimizer | ||
parser | ||
port | ||
portability | ||
postmaster | ||
regex | ||
replication | ||
rewrite | ||
snowball | ||
storage | ||
tcop | ||
tsearch | ||
utils | ||
.gitignore | ||
c.h | ||
fmgr.h | ||
funcapi.h | ||
getaddrinfo.h | ||
getopt_long.h | ||
Makefile | ||
miscadmin.h | ||
pg_config_ext.h.in | ||
pg_config_ext.h.win32 | ||
pg_config_manual.h | ||
pg_config.h.in | ||
pg_config.h.win32 | ||
pg_getopt.h | ||
pg_trace.h | ||
pgstat.h | ||
pgtar.h | ||
pgtime.h | ||
port.h | ||
postgres_ext.h | ||
postgres_fe.h | ||
postgres.h | ||
rusagestub.h | ||
windowapi.h |