[WebSimpleDB] Allowing schema operations anywhere

We are finding a number of reasons for wanting to create tables on the fly, and without bumping up the database version. A few examples:
- Packaged components that create side tables to maintain its own state
- Query processors often need to "spill to disk" during query execution. For example, sorting large sets requires storing temporary sets of rows on disk to be merged later.

So we're thinking it would be better to have these methods directly in the DatabaseSync/DatabaseAsync objects (with proper corresponding patterns), instead of their current location in the Upgrade interface.

For the common case where several schema changes need to be done atomically, developers can simply wrap the calls in a transaction, and they would do for regular data manipulation.

We would need an extra method to bump up the version explicitly, as that would no longer be in the upgrade callback.

Does this seem reasonable?

Regards,
-pablo

Received on Sunday, 22 November 2009 23:15:06 UTC