]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix overly strict Assert in jsonpath code
authorDavid Rowley <drowley@postgresql.org>
Tue, 1 Aug 2023 13:41:21 +0000 (01:41 +1200)
committerDavid Rowley <drowley@postgresql.org>
Tue, 1 Aug 2023 13:41:21 +0000 (01:41 +1200)
This was failing for queries which try to get the .type() of a
jpiLikeRegex.  For example:

select jsonb_path_query('["string", "string"]',
                        '($[0] like_regex ".{7}").type()');

Reported-by: Alexander Kozhemyakin
Bug: #18035
Discussion: https://postgr.es/m/18035-64af5cdcb5adf2a9@postgresql.org
Backpatch-through: 12, where SQL/JSON path was added.

src/backend/utils/adt/jsonpath.c

index fa22546f22d582cd2191bd6272c62218b0441f7e..178e210d81f90f8b7f908aecea9222348d6275e0 100644 (file)
@@ -978,7 +978,8 @@ jspGetNext(JsonPathItem *v, JsonPathItem *a)
                           v->type == jpiDouble ||
                           v->type == jpiDatetime ||
                           v->type == jpiKeyValue ||
-                          v->type == jpiStartsWith);
+                          v->type == jpiStartsWith ||
+                          v->type == jpiLikeRegex);
 
                if (a)
                        jspInitByBuffer(a, v->base, v->nextPos);