• Tom Lane's avatar
    Fix Assert failure when a fastpath function call is attempted inside an · bf64a379
    Tom Lane authored
    already-aborted transaction block.  GetSnapshotData throws an Assert if
    not in a valid transaction; hence we mustn't attempt to set a snapshot
    for the function until after checking for aborted transaction.  This is
    harmless AFAICT if Asserts aren't enabled (GetSnapshotData will compute
    a bogus snapshot, but it doesn't matter since HandleFunctionRequest will
    throw an error shortly anywy).  Hence, not a major bug.
    
    Along the way, add some ability to log fastpath calls when statement
    logging is turned on.  This could probably stand to be improved further,
    but not logging anything is clearly undesirable.
    
    Backpatched as far as 8.0; bug doesn't exist before that.
    bf64a379
postgres.c 95.8 KB