Hi,

This is a preview patch - DON'T COMMIT IT TO HEAD!

What I've done in this patch is add the following:

ALTER AGGREGATE / OWNER TO
ALTER CONVERSION / OWNER TO
ALTER FUNCTION / OWNER TO
ALTER OPERATOR / OWNER TO
ALTER OPERATOR CLASS / OWNER TO
ALTER SCHEMA / OWNER TO
ALTER TYPE / OWNER TO

That means we can change the owner of all objects.

Next, I modified pg_dump to remove all SET SESSION AUTHORIZATION commands for object creation. (I left them in on the COPY commands).

Then I made it so that pg_dump will output an OWNER TO statement after every object creation.

This means that pg_dump can dump a restorable dump in cases where, say, a super user created a language, and then had their superuser privs dropped, or when a user has created a table, but has then had their create privileges removed.

At the moment, i'm happy with how it dumps and reloads the regression database, and i'm working on adding tests for all OWNER TO in the regression suite. Full doc updates are already included.

Please review and give me feedback! The patch is large, but not at all complex :)

Some questions:

* Do we need the set session auth for COPY commands still?

* Are there any subtle implications of changing owners that I haven't realised? I know that it will affect SECURITY DEFINER for functions, but I put that in the docs.

* Is doing this ok: ObjectIdGetDatum(typTup->typrelid)

* Is there any reason there is no RENAME TO command for operators?

Chris


Attachment: owner.tar.gz
Description: GNU Zip compressed data

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to