pgsql: Simplify error handing of jsonapi.c for the frontend - Mailing list pgsql-committers

From Michael Paquier
Subject pgsql: Simplify error handing of jsonapi.c for the frontend
Date
Msg-id E1lz7Dq-0006mq-O2@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Simplify error handing of jsonapi.c for the frontend

This commit removes a dependency to the central logging facilities in
the JSON parsing routines of src/common/, which existed to log errors
when seeing error codes that do not match any existing values in
JsonParseErrorType, which is not something that should never happen.

The routine providing a detailed error message based on the error code
is made backend-only, the existing code being unsafe to use in the
frontend as the error message may finish by being palloc'd or point to a
static string, so there is no way to know if the memory of the message
should be pfree'd or not.  The only user of this routine in the frontend
was pg_verifybackup, that is changed to use a more generic error message
on parsing failure.

Note that making this code more resilient to OOM failures if used in
shared libraries would require much more work as a lot of code paths
still rely on palloc() & friends, but we are not sure yet if we need to
go down to that.  Still, removing the dependency to logging is a step
toward more portability.

This cleans up the handling of check_stack_depth() while on it, as it
exists only in the backend.

Per discussion with Jacob Champion and Tom Lane.

Discussion: https://postgr.es/m/YNwL7kXwn3Cckbd6@paquier.xyz

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/b44669b2ca6a510b2c81cbe74c704d59226d729c

Modified Files
--------------
src/bin/pg_verifybackup/parse_manifest.c      |  2 +-
src/bin/pg_verifybackup/t/005_bad_manifest.pl |  2 +-
src/common/jsonapi.c                          | 61 +++++++++++++--------------
3 files changed, 32 insertions(+), 33 deletions(-)


pgsql-committers by date:

Previous
From: Bruce Momjian
Date:
Subject: pgsql: doc: update PG 14 release notes
Next
From: Thomas Munro
Date:
Subject: pgsql: Remove some dead stores.