I notice there are still several places in pl_exec.c like this:

        case SPI_ERROR_TRANSACTION:
            ereport(ERROR,
                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
                     errmsg("cannot begin/end transactions in PL/pgSQL"),
                     errhint("Use a BEGIN block with an EXCEPTION clause 
instead.")));
            break;

At best, the wording of these error messages is now obsolete.  I'm not
sure if we expect them to be reachable at all.  If they should be
can't-happen cases, I'd suggest just deleting them and letting control
fall to the generic default: cases in each switch.  If they are reachable,
the messages need work.

                        regards, tom lane

Reply via email to