> On 25 May 2025, at 1:01 AM, David E. Wheeler <da...@justatheory.com> wrote:
> 
> On May 24, 2025, at 17:55, David E. Wheeler <da...@justatheory.com> wrote:
> 
>> And now I see my patch broke the grammar because I left some of my fiddling 
>> in there. Apologies. Here’s an updated patch with the updated keyword map, 
>> too.
> 
> No, really :sigh:
> 
> D
> 
> <v5-0001-Add-additional-jsonpath-string-methods.patch>

The most important problem in jsonpath_scan.l now is the fact that I broke the 
alphabetical ordering of keywords in v2 ,
and you followed that too.


> I'm curious why you added the `arg0` and `arg1` fields to the `method_args` 
> union. Is there some reason that the existing `left` and `right` fields 
> wouldn't work? 

The left-right ended-up being more of a brain teaser to work with in 
jsonpath_exec.
Until before these methods, the opt_datetime_template was the only argument 
passed in existing jsonpath functions, 
So initially I used that as a template to add to the scann-parser infra,
but then realized it may make morese sense to have a way to access indexed-args.
IIRC, with an eye in the future I found it much more convenient - less of the  
to work with indexed-args.
I should have gone back and use them for *TRIM_P too
But you may be onto something with the split_part thing.

> The existing string() method operates on a "JSON boolean, number, string, or 
> datetime"; should these functions also operate on all those data types?

You mean implicitely conversion to string first?
I don’t think so: I’d expect to work like ‘$…string().replace()…'

> I'm not sure how well these functions comply with the SQL spec.

The fact that Peter hasn’t raized this as an issue, makes me think it's not one



Reply via email to