W3C home > Mailing lists > Public > public-webapps@w3.org > October to December 2010

Re: [IndexedDB] Behavior of IDBObjectStore.get() and IDBObjectStore.delete() when record doesn't exist

From: Keean Schupke <keean@fry-it.com>
Date: Mon, 8 Nov 2010 18:41:09 +0000
Message-ID: <AANLkTi=QvU1thbDP32aKqXx8vPrTavdSUuu2sxrV+cYf@mail.gmail.com>
To: Jonas Sicking <jonas@sicking.cc>
Cc: "Tab Atkins Jr." <jackalmage@gmail.com>, Webapps WG <public-webapps@w3.org>
Hi,

In code, if:

idbObjectStoreSync.put(key, undefined)  does the same as
 idbObjectStoreSync.remove(key)

then

idbObjectStoreSync.get(key) can safely return undefined for no such key
exists.


Consider:

idbObjectStoreSync.put('mykey', undefined); // deletes the object stored
under mykey or noop.
idbObjectStoreSync.get('mykey'); // returns 'undefined'
idbObjectStoreSync.put('mykey', myobject);
idbObjectStoreSync.get('mykey'); // returns 'myobject'
idbObjectStoreSync.put('mykey', undefined); // deletes the object stored
under mykey or noop.
idbObjectStoreSync.get('mykey'); // returns 'undefined'


Cheers,
Keean.


On 8 November 2010 18:27, Jonas Sicking <jonas@sicking.cc> wrote:

> On Mon, Nov 8, 2010 at 10:06 AM, Keean Schupke <keean@fry-it.com> wrote:
> > It would make sense if you make setting a key to undefined semantically
> > equivalent to deleting the value (and no error if it does not exist), and
> > return undefined on a get when no such key exists. That way 'undefined'
> > cannot exist as a value in the object store, and is a safe marker for the
> > key not existing in that index.
>
> I'm not sure I follow. There is no way to set a key on an existing
> entry in an object store. The closest thing would be
> IDBCursor.update(), but it specifically disallow changing the key at
> all.
>
> / Jonas
>
Received on Monday, 8 November 2010 18:41:38 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:49:41 GMT