This addresses some post-commit review comments for commits
6185c973,
de3600452, and
9425c596a0, with the following changes:
* Fix JSON_TABLE() syntax documentation to use the term
"path_expression" for JSON path expressions instead of
"json_path_specification" to be consistent with the other SQL/JSON
functions.
* Fix a typo in the example code in JSON_TABLE() documentation.
* Rewrite some newly added comments in jsonpath.h.
* In JsonPathQuery(), add missing cast to int before printing an enum
value.
Reported-by: Jian He
Discussion: https://postgr.es/m/CACJufxG_e0QLCgaELrr2ZNz7AxPeGCNKAORe3fHtFCQLsH4J4Q@mail.gmail.com
{ ERROR | NULL | EMPTY { ARRAY | OBJECT } | DEFAULT expression } ON ERROR
| name type EXISTS PATH path_expression
{ ERROR | TRUE | FALSE | UNKNOWN } ON ERROR
- | NESTED PATH json_path_specification AS json_path_name COLUMNS ( json_table_column , ... )
+ | NESTED PATH path_expression AS json_path_name COLUMNS ( json_table_column , ... )
- NESTED PATH json_path_specification AS json_path_name
+ NESTED PATH path_expression AS json_path_name
COLUMNS ( json_table_column , ... )
"books":
[{"name": "Mystery", "authors": [{"name": "Brown Dan"}]},
{"name": "Wonder", "authors": [{"name": "Jun Murakami"}, {"name":"Craig Doe"}]}]
-}}'::json, '$.favs[*]'
-COLUMNS (user_id FOR ORDINALITY,
+}}'::json, '$.favorites[*]'
+COLUMNS (
+ user_id FOR ORDINALITY,
NESTED '$.movies[*]'
COLUMNS (
movie_id FOR ORDINALITY,
JsonContainerIsScalar(singleton->val.binary.data));
else
{
- elog(ERROR, "unrecognized json wrapper %d", wrapper);
+ elog(ERROR, "unrecognized json wrapper %d", (int) wrapper);
wrap = false;
}
extern bool jspConvertRegexFlags(uint32 xflags, int *result,
struct Node *escontext);
-
/*
- * Evaluation of jsonpath
+ * Struct for details about external variables passed into jsonpath executor
*/
-
-/* External variable passed into jsonpath. */
typedef struct JsonPathVariable
{
char *name;
} JsonPathVariable;
-/* SQL/JSON item */
+/* SQL/JSON query functions */
extern bool JsonPathExists(Datum jb, JsonPath *path, bool *error, List *vars);
extern Datum JsonPathQuery(Datum jb, JsonPath *jp, JsonWrapper wrapper,
bool *empty, bool *error, List *vars,
bool *error, List *vars,
const char *column_name);
+/* For JSON_TABLE() */
extern PGDLLIMPORT const TableFuncRoutine JsonbTableRoutine;
#endif