> You need to set $PGDATA before running the script. And psql,pg_ctl and > pg_resetxlog need to be in $PATH. After running the script, restart > postmaster and run "SELECT * FROM t2". There should be one row in the > table, but it's empty.
I've tried this script on "postgres (PostgreSQL) 8.3devel", and found that T2 is not empty after recovery(just as it should be)---but the latest version act just like what you said. Then I see how cluster is done, and found that: In "postgres (PostgreSQL) 8.3devel", unlike AlterTableSetTablespace (which copys the whole relation block-by-block, and doesn't use wal under non-archiving mode), Cluster copys the relation row-by-row(simple_heap_insert), which always uses wal regardless of archiving mode. As wal exists, recovery will cope with everything rightly. The latest version acts differently probably because that it removes wal of cluser under non-archiving mode. So the conclusion is: we can replace wal mechanism with smgrimmedsync only if relfilenode is not allowed to be reused, but this's not true, so what we should keep wal. Is it right? ---------------------------(end of broadcast)--------------------------- TIP 1: 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