On Wed, Dec 7, 2011 at 2:27 PM, Israel Hilerio <isra...@microsoft.com> wrote:
> On Saturday, December 03, 2011 9:25 PM, Jonas Sicking wrote:
>> On Thu, Dec 1, 2011 at 2:51 PM, Israel Hilerio <isra...@microsoft.com>
>> wrote:
>> > Jonas,
>> >
>> > Since you believe we should keep the values of version as a non-nullable
>> long long, what should the value of version be during the first run/creation 
>> if
>> the transaction is aborted? Should it be 0 (I don't believe we want version 
>> to
>> be a negative number)?
>>
>> I realized the other day that the question also applies to what should
>> db.objectStoreNames return? It makes sense that whatever changes we
>> make to .version we'd also make to .objectStoreNames. Do we revert it to
>> the value it had before the transaction was started? Do we throw?
>> Do we return null/0?
>>
>> Ultimately I feel like there really is very little reason for someone to use
>> these properties if the VERSION_CHANGE transaction fails, and so I'm
>> leaning more towards that we should do whatever is easy to implement.
>>
>> So what I suggest is that we do the same thing as for .close(). I.e.
>> we leave the values untouched. This seems not only easy to implement but
>> also is consistent with .close().
>>
>> / Jonas
>
> What about this behavior to summarize all ideas:
>
> Once the onupgradeneeded handler is called, the database is automatically 
> created.  If the VERSION_CHANGE transaction is aborted for any reason when 
> the database is being created for the first time, the database will remain in 
> the system with the following attributes: name="assigned db name", version = 
> 0, and objectStoresNames = null.

That's fine with me yeah.

And what about when .close() is called during the VERSION_CHANGE transaction?

/ Jonas

Reply via email to