pgsql: Implement DROP OWNED and REASSIGN OWNED.

From: alvherre(at)svr1(dot)postgresql(dot)org (Alvaro Herrera)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Implement DROP OWNED and REASSIGN OWNED.
Date: 2005-11-21 12:49:33
Message-ID: 20051121124933.7A6EAD9A8F@svr1.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Implement DROP OWNED and REASSIGN OWNED. These new commands facilitate the
process of dropping roles by dropping objects owned by them and privileges
granted to them, or giving the owned objects to someone else, through the
use of the data stored in the new pg_shdepend catalog.

Some refactoring of the GRANT/REVOKE code was needed, as well as ALTER OWNER
code. Further cleanup of code duplication in the GRANT code seems necessary.

Implemented by me after an idea from Tom Lane, who also provided various kind
of implementation advice.

Regression tests pass. Some tests for the new functionality are also added,
as well as rudimentary documentation.

Modified Files:
--------------
pgsql/doc/src/sgml:
reference.sgml (r1.56 -> r1.57)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/reference.sgml.diff?r1=1.56&r2=1.57)
pgsql/doc/src/sgml/ref:
allfiles.sgml (r1.66 -> r1.67)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/allfiles.sgml.diff?r1=1.66&r2=1.67)
pgsql/src/backend/catalog:
aclchk.c (r1.120 -> r1.121)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/aclchk.c.diff?r1=1.120&r2=1.121)
pg_depend.c (r1.15 -> r1.16)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_depend.c.diff?r1=1.15&r2=1.16)
pg_shdepend.c (r1.3 -> r1.4)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_shdepend.c.diff?r1=1.3&r2=1.4)
pgsql/src/backend/commands:
conversioncmds.c (r1.24 -> r1.25)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/conversioncmds.c.diff?r1=1.24&r2=1.25)
functioncmds.c (r1.69 -> r1.70)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/functioncmds.c.diff?r1=1.69&r2=1.70)
opclasscmds.c (r1.38 -> r1.39)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/opclasscmds.c.diff?r1=1.38&r2=1.39)
operatorcmds.c (r1.26 -> r1.27)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/operatorcmds.c.diff?r1=1.26&r2=1.27)
schemacmds.c (r1.36 -> r1.37)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/schemacmds.c.diff?r1=1.36&r2=1.37)
tablecmds.c (r1.174 -> r1.175)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/tablecmds.c.diff?r1=1.174&r2=1.175)
typecmds.c (r1.83 -> r1.84)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/typecmds.c.diff?r1=1.83&r2=1.84)
user.c (r1.164 -> r1.165)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/user.c.diff?r1=1.164&r2=1.165)
pgsql/src/backend/nodes:
copyfuncs.c (r1.318 -> r1.319)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/copyfuncs.c.diff?r1=1.318&r2=1.319)
equalfuncs.c (r1.255 -> r1.256)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/equalfuncs.c.diff?r1=1.255&r2=1.256)
pgsql/src/backend/parser:
gram.y (r2.513 -> r2.514)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/gram.y.diff?r1=2.513&r2=2.514)
keywords.c (r1.167 -> r1.168)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/keywords.c.diff?r1=1.167&r2=1.168)
pgsql/src/backend/tcop:
utility.c (r1.246 -> r1.247)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/tcop/utility.c.diff?r1=1.246&r2=1.247)
pgsql/src/include/catalog:
dependency.h (r1.17 -> r1.18)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/dependency.h.diff?r1=1.17&r2=1.18)
pgsql/src/include/commands:
conversioncmds.h (r1.11 -> r1.12)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/commands/conversioncmds.h.diff?r1=1.11&r2=1.12)
defrem.h (r1.68 -> r1.69)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/commands/defrem.h.diff?r1=1.68&r2=1.69)
schemacmds.h (r1.11 -> r1.12)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/commands/schemacmds.h.diff?r1=1.11&r2=1.12)
tablecmds.h (r1.24 -> r1.25)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/commands/tablecmds.h.diff?r1=1.24&r2=1.25)
user.h (r1.27 -> r1.28)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/commands/user.h.diff?r1=1.27&r2=1.28)
pgsql/src/include/nodes:
nodes.h (r1.176 -> r1.177)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/nodes.h.diff?r1=1.176&r2=1.177)
parsenodes.h (r1.293 -> r1.294)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/parsenodes.h.diff?r1=1.293&r2=1.294)
pgsql/src/include/utils:
acl.h (r1.88 -> r1.89)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/acl.h.diff?r1=1.88&r2=1.89)
pgsql/src/test/regress/expected:
dependency.out (r1.2 -> r1.3)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/dependency.out.diff?r1=1.2&r2=1.3)
pgsql/src/test/regress/sql:
dependency.sql (r1.2 -> r1.3)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/dependency.sql.diff?r1=1.2&r2=1.3)

Added Files:
-----------
pgsql/doc/src/sgml/ref:
drop_owned.sgml (r1.1)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/drop_owned.sgml?rev=1.1&content-type=text/x-cvsweb-markup)
reassign_owned.sgml (r1.1)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/reassign_owned.sgml?rev=1.1&content-type=text/x-cvsweb-markup)

Browse pgsql-committers by date

  From Date Subject
Next Message User Jpargudo 2005-11-21 16:01:55 pgloader - pgloader: New Directory
Previous Message User Andrewd 2005-11-21 12:46:11 pgbuildfarm - client-code: *ahem* actually do what the last patch