• Heikki Linnakangas's avatar
    Use correct text domain for translating errcontext() messages. · dbdf9679
    Heikki Linnakangas authored
    errcontext() is typically used in an error context callback function, not
    within an ereport() invocation like e.g errmsg and errdetail are. That means
    that the message domain that the TEXTDOMAIN magic in ereport() determines
    is not the right one for the errcontext() calls. The message domain needs to
    be determined by the C file containing the errcontext() call, not the file
    containing the ereport() call.
    
    Fix by turning errcontext() into a macro that passes the TEXTDOMAIN to use
    for the errcontext message. "errcontext" was used in a few places as a
    variable or struct field name, I had to rename those out of the way, now
    that errcontext is a macro.
    
    We've had this problem all along, but this isn't doesn't seem worth
    backporting. It's a fairly minor issue, and turning errcontext from a
    function to a macro requires at least a recompile of any external code that
    calls errcontext().
    dbdf9679
elog.h 13.4 KB