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@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general