Re: making the backend's json parser work in frontend code
Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: Robert Haas <robertmhaas@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>,
David Steele <david@pgmasters.net>, Bruce Momjian <bruce@momjian.us>,
Mark Dilger <mark.dilger@enterprisedb.com>,
"pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2020-01-24T18:16:12Z
Lists: pgsql-hackers
On 2020-01-24 18:56, Robert Haas wrote: > On Fri, Jan 24, 2020 at 9:48 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: >> Alvaro Herrera <alvherre@2ndquadrant.com> writes: >>> I prefer the encoding scheme myself. I don't see the point of the >>> error. >> >> Yeah, if we don't want to skip such files, then storing them using >> a base64-encoded name (with a different key than regular names) >> seems plausible. But I don't really see why we'd go to that much >> trouble, nor why we'd think it's likely that tools would correctly >> handle a case that is going to have 0.00% usage in the field. > > I mean, I gave a not-totally-unrealistic example of how this could > happen upthread. I agree it's going to be rare, but it's not usually > OK to decide that if a user does something a little unusual, > not-obviously-related features subtly break. Another example might be log files under pg_log with localized weekday or month names. (Maybe we're not planning to back up log files, but the routines that deal with file names should probably be prepared to at least look at the name and decide that they don't care about it rather than freaking out right away.) I'm not fond of the base64 idea btw., because it seems to sort of penalize using non-ASCII characters by making the result completely not human readable. Something along the lines of MIME would be better in that way. There are existing solutions to storing data with metadata around it. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
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