• Michael Paquier's avatar
    Add safeguards in LSN, numeric and float calculation for custom errors · a76cfba6
    Michael Paquier authored
    Those data types use parsing and/or calculation wrapper routines which
    can generate some generic error messages in the event of a failure.  The
    caller of these routines can also pass a pointer variable settable by
    the routine to track if an error has happened, letting the caller decide
    what to do in the event of an error and what error message to generate.
    
    Those routines have been slacking the initialization of the tracking
    flag, which can be confusing when reading the code, so add some
    safeguards against calls of these parsing routines which could lead to a
    dubious result.
    
    The LSN parsing gains an assertion to make sure that the tracking flag
    is set, while numeric and float paths initialize the flag to a saner
    state.
    
    Author: Jeevan Ladhe
    Reviewed-by: Álvaro Herrera, Michael Paquier
    Discussion: https://postgr.es/m/CAOgcT0NOM9oR0Hag_3VpyW0uF3iCU=BDUFSPfk9JrWXRcWQHqw@mail.gmail.com
    a76cfba6
float.c 90.2 KB