Re: JSON path decimal literal syntax
Peter Eisentraut <peter.eisentraut@enterprisedb.com>
From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2022-02-24T18:24:30Z
Lists: pgsql-hackers
Attachments
- v2-0001-Make-JSON-path-numeric-literals-more-correct.patch (text/plain) patch v2-0001
On 18.02.22 11:17, Peter Eisentraut wrote: > I noticed that the JSON path lexer does not support the decimal literal > syntax forms > > .1 > 1. > > (that is, there are no digits before or after the decimal point). This > is allowed by the relevant ECMAScript standard > (https://262.ecma-international.org/5.1/#sec-7.8.3) and of course SQL > allows it as well. > > Is there a reason for this? I didn't find any code comments or > documentation about this. It has come to my attention that there are syntactic differences between JavaScript, which is what JSON path is built on, and JSON itself. Presumably, the JSON path lexer was originally built with the JSON syntax in mind. Attached is an updated patch that implements the JavaScript-based JSON path numeric literal syntax more correctly. Besides the above mentioned syntax forms, it now also rejects trailing junk after numeric literals more correctly, similar to how the main SQL lexer does it.
Commits
-
Make JSON path numeric literals more correct
- e26114c817b6 15.0 landed