Re: The jsonpath predicate `like_regex` does not accept variables for pattern (or flags) - Mailing list pgsql-bugs

From David G. Johnston
Subject Re: The jsonpath predicate `like_regex` does not accept variables for pattern (or flags)
Date
Msg-id CAKFQuwanUk2+Vm=x12vokeuZQgW+nUJNvBQFH1-WmM-LoSezGg@mail.gmail.com
Whole thread Raw
In response to The jsonpath predicate `like_regex` does not accept variables for pattern (or flags)  (sulfinu@gmail.com)
Responses Re: The jsonpath predicate `like_regex` does not accept variables for pattern (or flags)
List pgsql-bugs
On Tue, Aug 6, 2024 at 10:28 AM <sulfinu@gmail.com> wrote:
this one is noticed on PostgreSQL 16.3.
One of the predicates that can be used in jsonpath expressions is like_regex, which unfortunately does not accept variables for pattern or flags:

I would like to be able to use a variable inside the like_regex predicate, at least for the pattern.


You can use a format function to build it dynamically.  Unfortunately it is a bit of a pain since you need to do escaping; which is a pain for regex.  SQL scope doesn't have this problem so moving your logic outside of a json is should seriously be considered before trying to construct dynamic jsonpath expressions.

I get the impression we are conforming to a standard here so even proposing a patch to change this behavior would require some convincing to deviate from the standard on this point.  Though I could see adding a new format escape and related quote_jsonpathliteral function to be something we'd be more open to in order to make dynamic json path expressions more easily doable.

David J.

pgsql-bugs by date:

Previous
From: sulfinu@gmail.com
Date:
Subject: The jsonpath predicate `like_regex` does not accept variables for pattern (or flags)
Next
From: Tom Lane
Date:
Subject: Re: The jsonpath predicate `like_regex` does not accept variables for pattern (or flags)