Re: json accessors

Поиск
Список
Период
Сортировка
От Merlin Moncure
Тема Re: json accessors
Дата
Msg-id CAHyXU0xXmta1CE0UxWbmLwdMH6aCk2GdDtGJ_feNdtvvSw2HQA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: json accessors  ("David E. Wheeler" <david@justatheory.com>)
Ответы Re: json accessors
Список pgsql-hackers
On Wed, Dec 5, 2012 at 11:14 AM, David E. Wheeler <david@justatheory.com> wrote:
> On Nov 28, 2012, at 4:10 PM, Merlin Moncure <mmoncure@gmail.com> wrote:
>
>>> Yes, it's iterative. And for deeply nested json it might be somewhat
>>> inefficient, although the parser is pretty fast AFAICT. But it's a start.
>>
>> not completely buying that: see comments below.  not supporting xpath
>> style decompositions seems wrong to me.  IOW, json_get should be set
>> returning (perhaps via wild cards in the keytext) or we need
>> json_each.
>
> The problem I see with the current proposal is that this limitation, it seems to me, would prevent the ability to
indexnested keys. If you're essentially composing and decomposing JSON values as you drill down, the intermediate JSON
valuesbetween the original one and the final return value can't be indexed, can they? 
>
> For sufficiently large columns, I expect I would want a GIN index to speed JSON value extraction queries. Possible
withthis proposal? 

I think best practices for JSON manipulation (at least in performance
sensitive cases with large documents) are going to be to fully
decompose into sql structures and manipulate after the fact.  JSON's
primary role is to serve as data exchange and Andrew's API (with the
tweaks he came up with) seems to facilitate that pretty well; full
decomposition is a snap.

Indexing large documents for fancy querying is a niche case but also
quite complex.  This isn't very well covered by xmlpath either btw --
I think for inspiration we should be looking at hstore.

That said, how would you do that?  The first thing that jumps into my
mind is to cut right to the chase:  Maybe the semantics could be
defined so that implement hackstack @> needle would reasonable cover
most cases.

So my takeaways are:
*) decomposition != precise searching.  andrew's api handles the
former and stands on it's own merits.

*) xmlpath/jsonpath do searching (and decomposition) but are very
clunky from sql perspective and probably absolutely nogo in terms if
GIST/GIN.  postgres spiritually wants to do things via operators and
we should (if possible) at least consider that first

merlin



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Dumping an Extension's Script
Следующее
От: Andrew Dunstan
Дата:
Сообщение: Re: json accessors