fix schema ownership for database owner on first connection - Mailing list pgsql-patches

From Fabien COELHO
Subject fix schema ownership for database owner on first connection
Date
Msg-id Pine.LNX.4.60.0406081554470.27846@sablons.cri.ensmp.fr
Whole thread Raw
Responses Re: fix schema ownership for database owner on first connection
Re: fix schema ownership for database owner on first connection
List pgsql-patches
Dear patchers,

Please find attached a patch to fix schema ownership on first connection,
so that non system schemas reflect the database owner.

(1) It adds a new "datisinit" attribute to pg_database, which tells
     whether the database initialization was performed or not.
     The documentation is updated accordingly.

(2) This boolean is tested in postinit.c:ReverifyMyDatabase,
     and InitializeDatabase is called if necessary.

(3) The routine updates pg_database datisinit, as well as pg_namespace
     ownership and acl stuff.

(4) Some validation is added. This part validates for me
     (although rules and errors regression tests are broken in current
      cvs head, independtly of this patch).

Some questions/comments :

- is the place for the first connection housekeeping updates appropriate?
   it seems so from ReverifyMyDatabase comments, but these are only comments.

- it is quite convenient to use SPI_* stuff for this very rare updates,
   but I'm not that confident about the issue... On the other hand, the
   all-C solution would result in a much longer and less obvious code:-(

- it is unclear to me whether it should be allowed to skip this under
   some condition, when the database is accessed in "debug" mode from
   a standalone postgres for instance?

- also I'm wondering how to react (what to do and how to do it) on
   errors within or under these initialization. For instance, how to
   be sure that the CurrentUser is reset as expected?

Thanks in advance for any comments.

Have a nice day.

--
Fabien.

Attachment

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: vacuum.c refactoring
Next
From: Tom Lane
Date:
Subject: Re: fix schema ownership for database owner on first connection