Guillaume Lelarge wrote: > Tom Lane a écrit : > > Guillaume Lelarge <[EMAIL PROTECTED]> writes: > >> I try to answer a simple question : what happens when I do a simple > >> "INSERT" on a just started PostgreSQL server. > > > >> From what I understand with the INSERT statement, here is what happens : > >> * backend loads first (and only) block from footable file into a shared > >> buffer > >> * it modifies this block on the shared buffer, and sets it as dirty > > > > Right, and it also makes a WAL log entry about this action. > > > > The WAL log entry is made on the wal buffers (in memory). As soon as > this statement is commited (in my example, it's right now, but in a > BEGIN ... COMMIT statement, at COMMIT time), the wal buffer is flushed > on WAL files. It can be flushed before if wal buffer is not big enough > to contain all the current transactions. Am I right ?
That's correct. WAL buffers are obviously shared; when one transaction commits it will flush not only its own entries, but also those that any other transaction could have written. -- Alvaro Herrera http://www.amazon.com/gp/registry/DXLWNGRJD34J "Endurecerse, pero jamás perder la ternura" (E. Guevara) ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match