Re: Define jsonpath functions as stable
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Chapman Flack <chap@anastigmatix.net>
Cc: "Jonathan S. Katz" <jkatz@postgresql.org>, Erik Rijkers <er@xs4all.nl>,
pgsql-hackers@lists.postgresql.org
Date: 2019-09-18T23:41:21Z
Lists: pgsql-hackers
Attachments
- jsonpath-regex-doc-v5.patch (text/x-diff) patch v5
Chapman Flack <chap@anastigmatix.net> writes: > On 09/18/19 17:12, Tom Lane wrote: >> As such, I think this doesn't apply to SQL/JSON. The SQL/JSON spec >> seems to defer to Javascript/ECMAscript for syntax details, and >> in either of those languages you have backslash escape sequences >> for writing weird characters, *not* XML entities. You certainly >> wouldn't have use of such entities in a native implementation of >> LIKE_REGEX in SQL. > So yeah, that seems to be correct. Thanks for double-checking. I removed that para from the patch. >> So now I'm thinking we can just remove the handwaving about entities. >> On the other hand, this points up a large gap in our docs about >> SQL/JSON, which is that nowhere does it even address the question of >> what the string literal syntax is within a path expression. > That does seem like it ought to be covered. I found a spot that seemed like a reasonable place, and added some coverage of the point. Updated patch attached. It seems to me that there are some discrepancies between what the spec says and what jsonpath_scan.l actually does, so maybe we should take a hard look at that code too. The biggest issue is that jsonpath_scan.l seems to allow single- and double-quoted strings interchangeably, which is OK per ECMAScript, but then the SQL/JSON spec seems to be saying that only double-quoted strings are allowed. I'd rather be conservative about this than get out in front of the spec and use syntax space that they might do something else with someday. regards, tom lane
Commits
-
Fix some minor spec-compliance issues in jsonpath lexer.
- e56cad84d542 13.0 landed
- 5f3bec0769c1 12.0 landed
-
Doc: improve documentation around jsonpath regular expressions.
- b9cf94c8c249 12.0 landed
- 0a97edb12ec4 13.0 landed
-
Fix bogus handling of XQuery regex option flags.
- d5b90cd64855 13.0 landed
- 148881454208 12.0 landed