Bug 153800

Summary: Modern IDB: storage/indexeddb/cursor-primary-key-order.html fails with SQLite backend
Product: WebKit Reporter: Brady Eidson <beidson>
Component: WebCore Misc.Assignee: Brady Eidson <beidson>
Status: RESOLVED FIXED    
Severity: Normal CC: achristensen, alecflett, commit-queue, jsbell
Priority: P2    
Version: Safari 9   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 149117, 153021    
Attachments:
Description Flags
Patch v1 none

Brady Eidson
Reported 2016-02-02 13:40:10 PST
Modern IDB: storage/indexeddb/cursor-primary-key-order.html fails with SQLite backend An Index cursor gets integers out of order. It should go: -Inf, -2, -1, 0, 1, 2, Inf ...But instead it goes: 0, 1, 2, Inf, -1, -2, -Inf I've hard coded some debugging into SQLiteIDBCursor and found that, indeed, just stepping the cursor statement over and over does, in fact, give the out of order results. This is either a bug in our key comparator, a bug in some SQL queries, or a bug in SQLite.
Attachments
Patch v1 (9.78 KB, patch)
2016-02-02 14:45 PST, Brady Eidson
no flags
Brady Eidson
Comment 1 2016-02-02 13:44:33 PST
It's the statement creating the index record table. It's currently: CREATE TABLE IndexRecords (indexID INTEGER NOT NULL ON CONFLICT FAIL, objectStoreID INTEGER NOT NULL ON CONFLICT FAIL, key TEXT COLLATE IDBKEY NOT NULL ON CONFLICT FAIL, value NOT NULL ON CONFLICT FAIL); It needs to be: CREATE TABLE IndexRecords (indexID INTEGER NOT NULL ON CONFLICT FAIL, objectStoreID INTEGER NOT NULL ON CONFLICT FAIL, key TEXT COLLATE IDBKEY NOT NULL ON CONFLICT FAIL, value TEXT COLLATE IDBKEY NOT NULL ON CONFLICT FAIL); Note the value (which is an IDBKey into the object store) needs IDBKey collation for sorting upon insertion.
Brady Eidson
Comment 2 2016-02-02 14:45:09 PST
Created attachment 270520 [details] Patch v1
WebKit Commit Bot
Comment 3 2016-02-02 16:12:30 PST
Comment on attachment 270520 [details] Patch v1 Clearing flags on attachment: 270520 Committed r196038: <http://trac.webkit.org/changeset/196038>
WebKit Commit Bot
Comment 4 2016-02-02 16:12:33 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.