Bug in error reporting for multi-line JSON
Simon Riggs <simon.riggs@enterprisedb.com>
From: Simon Riggs <simon.riggs@enterprisedb.com>
To: pgsql-bugs@postgresql.org
Date: 2021-01-20T06:58:09Z
Lists: pgsql-bugs, pgsql-hackers
Attachments
- json_error_context.v3.PG12.patch (application/octet-stream) patch v3
- json_error_context.v3.patch (application/octet-stream) patch v3
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.
Proposed changes mean a JSON error such as this
{
"one": 1,
"two":,"two", <-- extra comma
"three": true
}
was previously reported as
CONTEXT: JSON data, line 1: {
"one": 1,
"two":,...
should be reported as
CONTEXT: JSON data, line 3: "two":,...
Attached patches:
HEAD: json_error_context.v3.patch - applies cleanly, passes make check
PG13: json_error_context.v3.patch - applies w minor fuzz, passes make check
PG12: json_error_context.v3.PG12.patch - applies cleanly, passes make check
PG11: json_error_context.v3.PG12.patch - applies cleanly, not tested
PG10: json_error_context.v3.PG12.patch - applies cleanly, not tested
PG9.6: json_error_context.v3.PG12.patch - applies cleanly, not tested
PG9.5: json_error_context.v3.PG12.patch - applies cleanly, not tested
--
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