Thom Brown wrote: > On 19 March 2015 at 14:35, Alvaro Herrera <alvhe...@2ndquadrant.com> wrote: > > Thom Brown wrote: > >> On 19 March 2015 at 14:12, Alvaro Herrera <alvhe...@2ndquadrant.com> wrote: > >> > Dmitry Dolgov wrote: > >> > > >> >> * jsonb_slice - extract a subset of an jsonb > >> >> Example of usage:
> Okay, so it pulls it all parents? So I guess you'd get this too: > > SELECT jsonb_slice('{"a": 1, "b": {"c": 2}, "d": {"f": 3}, "f": > 4}'::jsonb, ARRAY['b', 'f', 'x']); > > jsonb_slice > ------------------------------------------------ > {"a": 1, "b": {"c": 2}, "d": {"f": 3}, "f": 4} Yeah, except "a" wouldn't be output, of course. (The example gets more interesting if "d" contains more members than just "f". Those would not get output.) > >> Although I'm still a bit confused about "f" being produced. > > > > I guess you could say that the second argument is an array of element > > paths, not key names. So to get the result I suggest, you would have to > > use ARRAY['{b}', '{d,f}', '{x}']. (Hm, this is a non-rectangular > > array actually... I guess I'd go for ARRAY['b', 'd//f', 'x'] instead, or > > whatever the convention is to specify a json path). > > I think that's where jsquery would come in handy. If that's what we think, then perhaps we shouldn't accept jsonb_slice at all because of ambiguous mode of operation. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers