On Tue, May 31, 2011 at 7:04 AM, Cédric Villemain <cedric.villemain.deb...@gmail.com> wrote: > Robert, I wonder if all the logic with INIT_FORK is only to simulate > truncate on server restart ?
That is correct. > I failled to understand why not simply use truncate around the server > start (when it is in recovery). We need to do the equivalent of a truncate but without relying in any way on the system catalogs. The startup process is not bound to a database, and starting a separate worker process for each database would be both very complicated and very expensive. Also note that while truncate is very simple for a table (just zero out the file) it's not so simple for an index (a zero-length file is an invalid index, not an empty one). > While here I also wonder why GiST unlogged are not supported ?! Because they use LSNs internally to guarantee proper synchronization, which presumes that WAL records are being omitted. Temporary GIST indexes were broken too, for the same reason, but Heikki fixed that using GetXLogRecPtrForTemp(). We could engineer a similar solution for unlogged GIST indexes using a shared counter that is saved in pg_control across clean shutdowns, but I think that's a 9.2 project. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs