Re: JSON path decimal literal syntax

From: Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: JSON path decimal literal syntax
Date: 2022-02-24 18:24:30
Message-ID: eb5330c4-beee-0c7f-5ba1-2bab099c6e11@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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.

Attachment Content-Type Size
v2-0001-Make-JSON-path-numeric-literals-more-correct.patch text/plain 10.2 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Nitin Jadhav 2022-02-24 18:53:27 Re: Report checkpoint progress with pg_stat_progress_checkpoint (was: Report checkpoint progress in server logs)
Previous Message Tom Lane 2022-02-24 18:17:38 Re: fix crash with Python 3.11