Re: BUG #17385: "RESET transaction_isolation" inside serializable transaction causes Assert at the transaction end

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Cc: sawada.mshk@gmail.com, d.koval@postgrespro.ru, dilipbalaut@gmail.com, andrewbille@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2022-03-14T13:45:17Z
Lists: pgsql-bugs
Kyotaro Horiguchi <horikyota.ntt@gmail.com> writes:
> ERRCODE_FEATURE_NOT_SUPPORTED doesn't look proper for the case. Isn't
> it ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE or something like?

Mmm ... I guess you could think of it that way, but it seems a
little weird, because you have to suppose that the *transaction*
not the GUC itself is the object that is in the wrong state.
We could use ERRCODE_ACTIVE_SQL_TRANSACTION as is done in
check_XactIsoLevel et al.  But this code is supposed to be generic,
and if there are ever any other GUCs marked NO_RESET, who's to say
if that would be appropriate at all for them?

I'm OK with FEATURE_NOT_SUPPORTED.

			regards, tom lane



Commits

  1. Renumber GUC flags for a bit more sanity.

  2. Introduce GUC_NO_RESET flag.