Bug 40424

Summary: Implement more of IndexedDB's Indexes and ObjectStores
Product: WebKit Reporter: Jeremy Orlow <jorlow>
Component: New BugsAssignee: Jeremy Orlow <jorlow>
Status: RESOLVED FIXED    
Severity: Normal CC: andreip, fishd, steveblock
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Other   
OS: OS X 10.5   
Attachments:
Description Flags
Patch steveblock: review+

Jeremy Orlow
Reported 2010-06-10 06:56:48 PDT
Implement more of IndexedDB's Indexes and ObjectStores
Attachments
Patch (39.59 KB, patch)
2010-06-10 07:07 PDT, Jeremy Orlow
steveblock: review+
Jeremy Orlow
Comment 1 2010-06-10 07:07:46 PDT
Andrei Popescu
Comment 2 2010-06-10 08:00:14 PDT
Looks good, one comment below: > PassRefPtr<IDBObjectStoreRequest> IDBDatabaseRequest::objectStore(const String& name, unsigned short mode) > { > RefPtr<IDBObjectStore> objectStore = m_database->objectStore(name, mode); > ASSERT(objectStore); // FIXME: If this is null, we should raise a NOT_FOUND_ERR. > return IDBObjectStoreRequest::create(objectStore.release()); > } The spec says about this: // Simple shorthand for transaction([name], mode).objectStore(name); // Returns object immediately. So simply returning an object is incorrect, we should also call transaction(). Add a FIXME? Furthermore, why not raise NOT_FOUND_ERR if an object store with that name doesn't exist rather than the ASSERT + FIXME? It's just a one-liner, right? Or am I missing something?
Jeremy Orlow
Comment 3 2010-06-10 08:34:56 PDT
(In reply to comment #2) > Looks good, one comment below: > > > PassRefPtr<IDBObjectStoreRequest> IDBDatabaseRequest::objectStore(const String& name, unsigned short mode) > > { > > RefPtr<IDBObjectStore> objectStore = m_database->objectStore(name, mode); > > ASSERT(objectStore); // FIXME: If this is null, we should raise a NOT_FOUND_ERR. > > return IDBObjectStoreRequest::create(objectStore.release()); > > } > > The spec says about this: > > // Simple shorthand for transaction([name], mode).objectStore(name); > // Returns object immediately. > > So simply returning an object is incorrect, we should also call transaction(). Add a FIXME? k. > Furthermore, why not raise NOT_FOUND_ERR if an object store with that name doesn't exist rather than the ASSERT + FIXME? It's just a one-liner, right? Or am I missing something? I need to add a bunch of code to support IDBDatabaseExceptions. Best left to its own patch, I think.
Jeremy Orlow
Comment 4 2010-06-11 06:28:13 PDT
Ping. Given that Andrei has done an unofficial review of the meat (he's working with me on implementing it), it should be a really easy r+
Jeremy Orlow
Comment 5 2010-06-11 07:03:03 PDT
Note You need to log in before you can comment on or make changes to this bug.