eql_v3.jsonb_path_query returns one row per matching array entry. Downstream
array operations therefore receive a single entry instead of one gathered array
document; for example, a two-element array can report a length of one.
EQL v2 gathered entries sharing the array selector before returning them. The v3
surface needs equivalent container-based aggregation while preserving domain
typing and scalar path-query behaviour.
Acceptance criteria
- A path query selecting a two-element encrypted array returns one array result.
jsonb_array_length(jsonb_path_query(...)) returns two for that result.
jsonb_array_elements expands the gathered result exactly once.
- The JSON path functions remain inlinable and have regression coverage for
planner shape as well as correctness.
- The fix follows the umbrella array wire contract and does not reintroduce an
unauthenticated array marker.
eql_v3.jsonb_path_queryreturns one row per matching array entry. Downstreamarray operations therefore receive a single entry instead of one gathered array
document; for example, a two-element array can report a length of one.
EQL v2 gathered entries sharing the array selector before returning them. The v3
surface needs equivalent container-based aggregation while preserving domain
typing and scalar path-query behaviour.
Acceptance criteria
jsonb_array_length(jsonb_path_query(...))returns two for that result.jsonb_array_elementsexpands the gathered result exactly once.planner shape as well as correctness.
unauthenticated array marker.