• Tom Lane's avatar
    Revise the API for GUC variable assign hooks. · 2594cf0e
    Tom Lane authored
    The previous functions of assign hooks are now split between check hooks
    and assign hooks, where the former can fail but the latter shouldn't.
    Aside from being conceptually clearer, this approach exposes the
    "canonicalized" form of the variable value to guc.c without having to do
    an actual assignment.  And that lets us fix the problem recently noted by
    Bernd Helmle that the auto-tune patch for wal_buffers resulted in bogus
    log messages about "parameter "wal_buffers" cannot be changed without
    restarting the server".  There may be some speed advantage too, because
    this design lets hook functions avoid re-parsing variable values when
    restoring a previous state after a rollback (they can store a pre-parsed
    representation of the value instead).  This patch also resolves a
    longstanding annoyance about custom error messages from variable assign
    hooks: they should modify, not appear separately from, guc.c's own message
    about "invalid parameter value".
    2594cf0e
elog.h 12 KB