• Robert Haas's avatar
    Adjust pg_parse_json() so that it does not directly ereport(). · 1f3a0217
    Robert Haas authored
    Instead, it now returns a value indicating either success or the
    type of error which occurred. The old behavior is still available
    by calling pg_parse_json_or_ereport(). If the new interface is
    used, an error can be thrown by passing the return value of
    pg_parse_json() to json_ereport_error().
    
    pg_parse_json() can still elog() in can't-happen cases, but it
    seems like that issue is best handled separately.
    
    Adjust json_lex() and json_count_array_elements() to return an
    error code, too.
    
    This is all in preparation for making the backend's json parser
    available to frontend code.
    
    Reviewed and/or tested by Mark Dilger and Andrew Dunstan.
    
    Discussion: http://postgr.es/m/CA+TgmoYfOXhd27MUDGioVh6QtpD0C1K-f6ObSA10AWiHBAL5bA@mail.gmail.com
    1f3a0217
jsonb.c 49.3 KB