Re: making the backend's json parser work in frontend code
Mark Dilger <mark.dilger@enterprisedb.com>
From: Mark Dilger <mark.dilger@enterprisedb.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>,
"pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2020-01-20T07:02:37Z
Lists: pgsql-hackers
Attachments
- pg_wchar.cleanup.patch.1 (application/octet-stream)
> On Jan 16, 2020, at 1:24 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > >>> >>> Lastly, it strikes me that maybe pg_wchar.h, or parts of it, should >>> migrate over to src/include/common. But that'd be far more invasive >>> to other source files, so I've not touched the issue here. > >> I don't have a view on this. > > If anyone is hot to do this part, please have at it. I'm not. I moved the file pg_wchar.h into src/include/common and split out most of the functions you marked as being suitable for the backend only into a new file src/include/utils/mbutils.h. That resulted in the need to include this new “utils/mbutils.h” from a number of .c files in the source tree. One issue that came up was libpq/pqformat.h uses a couple of those functions from within static inline functions, preventing me from moving those to a backend-only include file without making pqformat.h a backend-only include file. I think the right thing to do here is to move references to these functions into pqformat.c by un-inlining these functions. I have not done that yet. There are whitespace cleanup issues I’m not going to fix just yet, since I’ll be making more changes anyway. What do you think of the direction I’m taking in the attached? — Mark Dilger EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
Add jsonapi.c to Mkvcbuild.pm's @pgcommonallfiles.
- 006b9dcad419 13.0 landed
-
Move jsonapi.c and jsonapi.h to src/common.
- beb4699091e9 13.0 landed
-
Move some code from jsonapi.c to jsonfuncs.c.
- 73ce2a03f30b 13.0 landed
-
Adjust pg_parse_json() so that it does not directly ereport().
- 1f3a021730be 13.0 landed
-
Remove jsonapi.c's lex_accept().
- 530609aa4263 13.0 landed
-
Split JSON lexer/parser from 'json' data type support.
- 11b5e3e35d39 13.0 landed
-
Rationalize code placement between wchar.c, encnames.c, and mbutils.c.
- 5afaa2e42655 13.0 landed
-
Move wchar.c and encnames.c to src/common/.
- e6afa8918c46 13.0 landed
-
Update header comments for wchar.c and encnames.c.
- 3d4cb5d6c180 13.0 landed
-
Make StringInfo available to frontend code.
- 26aaf97b683d 13.0 cited
-
Use SASLprep to normalize passwords for SCRAM authentication.
- 60f11b87a234 10.0 cited