Skip to main content

end_own_transaction

Function end_own_transaction 

Source
fn end_own_transaction(session: &mut Session, stages_rows: bool)
Expand description

Ends the implicit transaction that a statement which cannot run in a transaction block opened for itself.

A read-then-write that reads persisted state is refused inside a transaction, so it must not quietly become part of one. Clearing the ops it staged leaves crate::session::TransactionStatus::may_span_pipeline false, so pgwire commits the implicit transaction rather than letting the rest of an extended-protocol pipeline join it. The write is already durable at this point, and the caller has established there is nothing else staged to lose.