Re: Bug in error reporting for multi-line JSON
Simon Riggs <simon.riggs@enterprisedb.com>
From: Simon Riggs <simon.riggs@enterprisedb.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-bugs@postgresql.org
Date: 2021-01-25T13:08:15Z
Lists: pgsql-bugs, pgsql-hackers
On Thu, Jan 21, 2021 at 6:08 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > > Simon Riggs <simon.riggs@enterprisedb.com> writes: > > JSON parsing reports the line number and relevant context info > > incorrectly when the JSON contains newlines. Current code mostly just > > says "LINE 1" and is misleading for error correction. There were no > > tests for this previously. > > Couple thoughts: > > * I think you are wrong to have removed the line number bump that > happened when report_json_context advances context_start over a > newline. The case is likely harder to get to now, but it can still > happen can't it? If it can't, we should remove that whole stanza. OK, I'm playing around with this to see what is needed. > * I'd suggest naming the new JsonLexContext field "pos_last_newline"; > "linefeed" is not usually the word we use for this concept. (Although > actually, it might work better if you make that point to the char > *after* the newline, in which case "last_linestart" might be the > right name.) Yes, OK > * I'm not enthused about back-patching. This behavior seems like an > improvement, but that doesn't mean people will appreciate changing it > in stable branches. OK, as you wish. Thanks for the review, will post again soon with an updated patch. -- Simon Riggs http://www.EnterpriseDB.com/
Commits
-
Remove redundant test.
- ed740b06b18e 14.0 landed
- 373e08a9f771 15.0 landed
-
Improve reporting for syntax errors in multi-line JSON data.
- ffd3944ab9d4 14.0 landed