Re: SQL/JSON path issues/questions - Mailing list pgsql-hackers

From Alexander Korotkov
Subject Re: SQL/JSON path issues/questions
Date
Msg-id CAPpHfds2a6sjV10S5g42uWc4s=udTRYV=rth03-eLR1y60K=cA@mail.gmail.com
Whole thread Raw
In response to Re: SQL/JSON path issues/questions  (Alexander Korotkov <a.korotkov@postgrespro.ru>)
Responses Re: SQL/JSON path issues/questions
List pgsql-hackers
I'm going to push attached 3 patches if no objections.

Regarding 0003-Separate-two-distinctive-json-errors.patch, I think it
requires more thoughts.

        RETURN_ERROR(ereport(ERROR,
                             (errcode(ERRCODE_SINGLETON_JSON_ITEM_REQUIRED),
                              errmsg("left operand of jsonpath
operator %s is not a single numeric value",
-                                    jspOperationName(jsp->type)))));
+                                    jspOperationName(jsp->type)),
+                             (llen != 1 ?
+                              errdetail("It was an array with %d
elements.", llen):
+                              errdetail("The only element was not a
numeric.")))));

When we have more than 1 value, it's no exactly array.  Jsonpath can
extract values from various parts of json document, which never
constitute and array.  Should we say something like "There are %d
values"?  Also, probably we should display the type of single element
if it's not numeric.  jsonb_path_match() also throws
ERRCODE_SINGLETON_JSON_ITEM_REQUIRED, should we add similar
errdetail() there?

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Attachment

pgsql-hackers by date:

Previous
From: Kyotaro Horiguchi
Date:
Subject: Strange error message in xlog.c
Next
From: Antonin Houska
Date:
Subject: Re: "WIP: Data at rest encryption" patch and, PostgreSQL 11-beta3