postgresql/src/backend/utils/adt
Robert Haas e3ce2de09d Allow grant-level control of role inheritance behavior.
The GRANT statement can now specify WITH INHERIT TRUE or WITH
INHERIT FALSE to control whether the member inherits the granted
role's permissions. For symmetry, you can now likewise write
WITH ADMIN TRUE or WITH ADMIN FALSE to turn ADMIN OPTION on or off.

If a GRANT does not specify WITH INHERIT, the behavior based on
whether the member role is marked INHERIT or NOINHERIT. This means
that if all roles are marked INHERIT or NOINHERIT before any role
grants are performed, the behavior is identical to what we had before;
otherwise, it's different, because ALTER ROLE [NO]INHERIT now only
changes the default behavior of future grants, and has no effect on
existing ones.

Patch by me. Reviewed and testing by Nathan Bossart and Tushar Ahuja,
with design-level comments from various others.

Discussion: http://postgr.es/m/CA+Tgmoa5Sf4PiWrfxA=sGzDKg0Ojo3dADw=wAHOhR9dggV=RmQ@mail.gmail.com
2022-08-25 10:06:02 -04:00
..
.gitignore
acl.c Allow grant-level control of role inheritance behavior. 2022-08-25 10:06:02 -04:00
amutils.c
array_expanded.c
array_selfuncs.c
array_typanalyze.c Invent qsort_interruptible(). 2022-07-12 16:30:36 -04:00
array_userfuncs.c
arrayfuncs.c Fix trim_array() for zero-dimensional array argument. 2022-07-31 13:43:17 -04:00
arraysubs.c
arrayutils.c Add construct_array_builtin, deconstruct_array_builtin 2022-07-01 11:23:15 +02:00
ascii.c
bool.c
cash.c
char.c Change type "char"'s I/O format for non-ASCII characters. 2022-08-02 10:29:35 -04:00
cryptohashfuncs.c
date.c Specialize tuplesort routines for different kinds of abbreviated keys 2022-04-02 15:22:25 +07:00
datetime.c Replace many MemSet calls with struct initialization 2022-07-16 08:50:49 +02:00
datum.c
dbsize.c Change internal RelFileNode references to RelFileNumber or RelFileLocator. 2022-07-06 11:39:09 -04:00
domains.c
encode.c
enum.c
expandeddatum.c
expandedrecord.c
float.c Remove support for Visual Studio 2013 2022-07-14 11:22:49 +09:00
format_type.c SQL JSON functions 2022-03-30 16:30:37 -04:00
formatting.c Remove configure probe for wctype.h. 2022-07-23 16:54:00 +12:00
genfile.c Support pg_read_[binary_]file (filename, missing_ok). 2022-07-29 15:38:49 -04:00
geo_ops.c Defend against stack overrun in a few more places. 2022-08-24 13:02:19 -04:00
geo_selfuncs.c
geo_spgist.c
hbafuncs.c Fix path reference when parsing pg_ident.conf for pg_ident_file_mappings 2022-07-26 15:57:31 +09:00
inet_cidr_ntop.c
inet_net_pton.c
int8.c Teach planner and executor about monotonic window funcs 2022-04-08 10:34:36 +12:00
int.c
json.c Add construct_array_builtin, deconstruct_array_builtin 2022-07-01 11:23:15 +02:00
jsonb_gin.c Avoid using list_length() to test for empty list. 2022-08-17 11:12:35 -04:00
jsonb_op.c Add construct_array_builtin, deconstruct_array_builtin 2022-07-01 11:23:15 +02:00
jsonb_util.c Pre-beta mechanical code beautification. 2022-05-12 15:17:30 -04:00
jsonb.c Add construct_array_builtin, deconstruct_array_builtin 2022-07-01 11:23:15 +02:00
jsonbsubs.c
jsonfuncs.c Add construct_array_builtin, deconstruct_array_builtin 2022-07-01 11:23:15 +02:00
jsonpath_exec.c Remove shadowed local variables that are new in v15 2022-08-20 11:40:44 +12:00
jsonpath_gram.y Avoid using list_length() to test for empty list. 2022-08-17 11:12:35 -04:00
jsonpath_scan.l Indent C code in flex and bison files 2022-05-13 07:17:29 +02:00
jsonpath.c Pre-beta mechanical code beautification. 2022-05-12 15:17:30 -04:00
levenshtein.c Further -Wshadow=compatible-local warning fixes 2022-08-24 22:04:28 +12:00
like_match.c
like_support.c Defend against stack overrun in a few more places. 2022-08-24 13:02:19 -04:00
like.c Pre-beta mechanical code beautification. 2022-05-12 15:17:30 -04:00
lockfuncs.c Replace many MemSet calls with struct initialization 2022-07-16 08:50:49 +02:00
mac8.c
mac.c Specialize tuplesort routines for different kinds of abbreviated keys 2022-04-02 15:22:25 +07:00
Makefile Refactor code related to pg_hba_file_rules() into new file 2022-03-24 12:42:30 +09:00
mcxtfuncs.c Create routine able to set single-call SRFs for Materialize mode 2022-03-07 10:26:29 +09:00
misc.c Replace pgwin32_is_junction() with lstat(). 2022-08-06 12:50:59 +12:00
multirangetypes_selfuncs.c
multirangetypes.c Pre-beta mechanical code beautification. 2022-05-12 15:17:30 -04:00
name.c Add construct_array_builtin, deconstruct_array_builtin 2022-07-01 11:23:15 +02:00
network_gist.c
network_selfuncs.c
network_spgist.c
network.c Specialize tuplesort routines for different kinds of abbreviated keys 2022-04-02 15:22:25 +07:00
numeric.c Pre-beta mechanical code beautification. 2022-05-12 15:17:30 -04:00
numutils.c
oid.c
oracle_compat.c Avoid ERRCODE_INTERNAL_ERROR in oracle_compat.c functions. 2022-05-26 12:25:10 -04:00
orderedsetaggs.c Add construct_array_builtin, deconstruct_array_builtin 2022-07-01 11:23:15 +02:00
partitionfuncs.c Replace many MemSet calls with struct initialization 2022-07-16 08:50:49 +02:00
pg_locale.c Fix function-defined-but-not-used warning. 2022-08-06 13:32:29 -04:00
pg_lsn.c
pg_upgrade_support.c Change internal RelFileNode references to RelFileNumber or RelFileLocator. 2022-07-06 11:39:09 -04:00
pgstatfuncs.c Replace many MemSet calls with struct initialization 2022-07-16 08:50:49 +02:00
pseudotypes.c
quote.c
rangetypes_gist.c Further -Wshadow=compatible-local warning fixes 2022-08-24 22:04:28 +12:00
rangetypes_selfuncs.c
rangetypes_spgist.c Pre-beta mechanical code beautification. 2022-05-12 15:17:30 -04:00
rangetypes_typanalyze.c Invent qsort_interruptible(). 2022-07-12 16:30:36 -04:00
rangetypes.c Change some internal error messages to elogs 2022-03-30 17:53:54 +02:00
regexp.c
regproc.c
ri_triggers.c Pre-beta mechanical code beautification. 2022-05-12 15:17:30 -04:00
rowtypes.c
ruleutils.c Further -Wshadow=compatible-local warning fixes 2022-08-24 22:04:28 +12:00
selfuncs.c Avoid using list_length() to test for empty list. 2022-08-17 11:12:35 -04:00
tid.c Tighten overflow checks in tidin(). 2022-03-03 20:04:35 -05:00
timestamp.c Replace many MemSet calls with struct initialization 2022-07-16 08:50:49 +02:00
trigfuncs.c
tsginidx.c
tsgistidx.c Change some unnecessary MemSet calls 2022-07-01 00:16:38 +02:00
tsquery_cleanup.c
tsquery_gist.c
tsquery_op.c
tsquery_rewrite.c
tsquery_util.c
tsquery.c Avoid using list_length() to test for empty list. 2022-08-17 11:12:35 -04:00
tsrank.c Fix collection of typos in the code and the documentation 2022-03-15 11:29:35 +09:00
tsvector_op.c Add construct_array_builtin, deconstruct_array_builtin 2022-07-01 11:23:15 +02:00
tsvector_parser.c
tsvector.c
uuid.c Pre-beta mechanical code beautification. 2022-05-12 15:17:30 -04:00
varbit.c
varchar.c Pre-beta mechanical code beautification. 2022-05-12 15:17:30 -04:00
varlena.c Preserve memory context of VarStringSortSupport buffers. 2022-08-14 12:05:27 -04:00
version.c
windowfuncs.c Teach planner and executor about monotonic window funcs 2022-04-08 10:34:36 +12:00
xid8funcs.c Fix visibility check when XID is committed in CLOG but not in procarray. 2022-06-27 08:21:08 +03:00
xid.c
xml.c Add construct_array_builtin, deconstruct_array_builtin 2022-07-01 11:23:15 +02:00