"Tom Lane" <[EMAIL PROTECTED]> wrote > "Qingqing Zhou" <[EMAIL PROTECTED]> writes: >> BEGIN TRANSACTION WITHOUT XLOG; /* forbidden vacuum, PITR etc */ > >> So during this peroid, if any transaction failed, the only consequence is >> add invisible garbage data. > > No, the likely consequence is irretrievable corruption of any table or > index page touched by the transaction. >
I guess I know (at least part) of what you mean. This is because we rely on replay all the xlog no matter it belongs to a committed transaction or not. Why? Because a failed transaction is not totally useless since later transaction may reply on some physical thing it creates - for example, a new page and its links of a btree. So for heap, there is(95% sure) no such problem. Our heap redo algorithm can automatically add empty pages to a heap. For index, there are problems, but I suspect they are solvable by not bypassing these records ... if this is not totally-nonstarter, I will investigate details of how to do it. Regards, Qingqing ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster