Skip to content

Commit 1508781

Browse files
author
Nikita Glukhov
committed
Fix '#' queries on empty arrays
1 parent 2539974 commit 1508781

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

expected/jsquery.out

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2682,7 +2682,7 @@ select count(*) from test_jsquery where v @@ '$'::jsquery;
26822682
select count(*) from test_jsquery where v @@ 'similar_product_ids.#'::jsquery;
26832683
count
26842684
-------
2685-
1001
2685+
950
26862686
(1 row)
26872687

26882688
select count(*) from test_jsquery where v @@ '$ . ? (review_votes > 10) . review_rating < 7'::jsquery;
@@ -2960,7 +2960,7 @@ select count(*) from test_jsquery where v @@ '$'::jsquery;
29602960
select count(*) from test_jsquery where v @@ 'similar_product_ids.#'::jsquery;
29612961
count
29622962
-------
2963-
1001
2963+
950
29642964
(1 row)
29652965

29662966
select count(*) from test_jsquery where v @@ '$ . ? (review_votes > 10) . review_rating < 7'::jsquery;

jsquery_op.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -604,7 +604,9 @@ recursiveExecute(JsQueryItem *jsq, JsonbValue *jb, JsQueryItem *jsqLeftArg,
604604

605605
if (hasNext == false)
606606
{
607-
res = true;
607+
if (jsq->type == jqiAllArray ||
608+
JsonContainerSize(jb->val.binary.data) > 0)
609+
res = true;
608610

609611
while(ra && (r = JsonbIteratorNext(&it, &v, true)) != WJB_DONE)
610612
if (r == WJB_ELEM)

0 commit comments

Comments
 (0)