Thread: Why there are TRANS_START and TRANS_INPROGRESS

Why there are TRANS_START and TRANS_INPROGRESS

From
DT
Date:
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.

Re: Why there are TRANS_START and TRANS_INPROGRESS

From
Albe Laurenz
Date:
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