[web databases] changeVersion error reporting

Hi!

Database.changeVersion expects oldVersion and newVersion arguments. The  
Database also specifies a version attribute.
The transaction steps tell to fail the transaction due to the failed  
preflight condition if oldVersion does not match the current database  
version.
Meanwhile, the callbacks have been made optional, and rightly so.

So:
  - if the author does not use the callbacks, there no error reporting that  
the preflight condition failed
  - the version check can be done synchronously when changeVersion is  
called because the Database object has immediate access to that value, and  
it's much more convenient for the author to just get an exception (like  
INVALID_STATE_ERR) than to have to go through the entire callback process  
just to realize later that the transaction failed due to the mismatched  
version. It also spares the user agent from creating and executing a  
transaction that WILL fail.

To solve these issues, I would suggest doing immediate synchronous  
validation of the version when changeVersion is called, throwing an  
exception on error, and drop that step from the preflight operations.

Thank you.

Received on Friday, 4 September 2009 00:58:45 UTC