Why there are TRANS_START and TRANS_INPROGRESS

Started by DTover 12 years ago2 messagesgeneral
Jump to latest
#1DT
kurt023@hotmail.com

Hi,

I'm reading code of xact.c, and I found the only difference between TRANS_START
and TRANS_INPROGRESS is when transaction aborts in TRANS_START status we set
status to TRANS_INPROGRESS so AbortTransaction() will not report WARNING.
So I wonder to know the reason why we distinguish them?

Thanks.

#2Laurenz Albe
laurenz.albe@cybertec.at
In reply to: DT (#1)
Re: Why there are TRANS_START and TRANS_INPROGRESS

DT wrote:

I'm reading code of xact.c, and I found the only difference between TRANS_START
and TRANS_INPROGRESS is when transaction aborts in TRANS_START status we set
status to TRANS_INPROGRESS so AbortTransaction() will not report WARNING.
So I wonder to know the reason why we distinguish them?

After reading into it it seems to me that TRANS_START means
"transaction is starting" and TRANS_INPROGRESS means
"transaction successfully started". See StartTransaction()
and StartSubTransaction().

A difference is made in IsTransactionState() where
TRANS_START transactions are not reported as being in a
transaction.

Yours,
Laurenz Albe

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general