(still catching up on the rest of the long thread of API changes, will get back 
to that a bit later)

From: public-webapps-requ...@w3.org [mailto:public-webapps-requ...@w3.org] On 
Behalf Of Jeremy Orlow
Sent: Thursday, May 20, 2010 3:34 PM

>> >> On Thu, May 20, 2010 at 11:25 PM, Shawn Wilsher <sdwi...@mozilla.com> 
>> >> wrote:
>> >> On 5/20/2010 7:34 AM, Shawn Wilsher wrote:
>> >> So far it's really just that joins are painful in IndexedDB. I'm working
>> >> on a blog post on this very topic though, and I'll be sure to point
>> >> everyone in this thread to it (I figure this is useful stuff to get out
>> >> to a wider audience).
>> >> And honestly, I thought that we had discussed joins on this list, but I 
>> >> only see a thread from Pablo mentioning it, but no real discussions. 
>> >> Should we start that?

>> Joins were actually in the original spec but taken out during the effort to 
>> simply the API greatly.  IIRC, the main reason why Nikunj took them out is 
>> that we believed you could fairly efficiently join yourself if you had 2 
>> sorted lists and because we didn't see a simple way to do them without 
>> introducing a lot of API surface area or creating (or borrowing) some sort 
>> of syntax for the joins.  (Now that I think about it, though, maybe doing 
>> this is not that big of a leap from what we're going to need to do to spec 
>> keyPaths.  I'm starting to wonder if we need to rethink that as well....)

>> Anyway, the decision was made so long ago that maybe it's worth re-opening 
>> the discussion.  I'll hunt through my mail archives tomorrow and start a new 
>> thread with references to any original bits of info I can find.

My main concern with joins, besides API surface, was that in order to implement 
joins you need to choose an actual strategy. Depending on whether you have 
indexes or not and other circumstances you could choose to do range 
scans/lookups, a merge join, etc. So at least for fancier libraries this would 
only be of partial help, as they would probably want to do their own joins 
sometimes. 

I'm happy to explore again though. It's certainly the case that for simpler 
cases it might help users pull off tasks without depending on a library. I do 
wonder if we should try and land the async API first.

-pablo

J

Reply via email to