Commit e75feb28 authored by Andrew Dunstan's avatar Andrew Dunstan

Fix off by one error in JSON extract path code.

Bug report by David Wheeler, diagnosis assistance from Tom Lane.
parent 48a2cd37
......@@ -682,9 +682,13 @@ get_array_start(void *state)
ereport(ERROR,
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
errmsg("cannot extract field from a non-object")));
/* initialize array count for this nesting level */
/*
* initialize array count for this nesting level
* Note: the lex_level seen by array_start is one less than that seen by
* the elements of the array.
*/
if (_state->search_type == JSON_SEARCH_PATH &&
lex_level <= _state->npath)
lex_level < _state->npath)
_state->array_level_index[lex_level] = -1;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment