Hi Greg, Thanks for v9,
I had a few thoughs here. 1. If a checkpoint comes after a transaction writes its undo, a crash does not undo it. Replay starts at the redo point. CREATE DATABASE can hit this. 2. A crash in the middle of CREATE DATABASE still seems to leave the new directory behind. With wal_log the undo only calls rmdir(). That fails because the relation files are still inside. With file_copy the cleanup is only kept in memory, so the crash loses it. 3. These commands cannot run in a transaction block, so the subtransaction and 2PC code is never used. Could it wait for a user? Thanks, Shihao
