[xquery-talk] Collections - family relationships

Michael Sokolov msokolov at safaribooksonline.com
Mon Jan 6 04:43:06 PST 2014


On 1/6/2014 7:21 AM, Andrew Welch wrote:
> On 6 January 2014 12:07, Ihe Onwuka <ihe.onwuka at gmail.com> wrote:
>> Thank you. I'm not wishing to sound uncharitable or rude, but I deliberately
>> didn't ask for a solution because I wanted to focus on the original
>> question.
> The non-specific general approach to this problem is grouping...
>
>> Consider the use case in the context of  someone who did not have access to
>> XQuery 3.0.
> You will have the fun of XQuery 1.0 grouping then : )  or of course
> vendor extensions, which from my XQuery days were 90% of the code
> written.
>
Just because they are vendor extensions doesn't mean they aren't the 
"right" solution.  Any database-oriented system should offer you a 
mechanism for indexing on a value such as "the author of the document" 
and then an efficient means to return the keys of your index, either in 
sorted order, or ordered by number of occurrences of (documents having) 
the key.  This is a specific kind of grouping, sometimes called 
faceting.  Once you have the values that occur once, the index should be 
able to return the matching documents quickly, too.

Maybe with XQuery 3 the grouping operator will give you access to these 
mechanisms in a more idiomatic (vendor-neutral) way, but it is 
definitely worth verifying that your optimizer is able to do that if you 
are dealing with more than a handful of documents.

-Mike


More information about the talk mailing list