== 1.4.0 2010-01-24 * Major enhancements: * Completely rewritten query generation engine queries supports arbitrarily deep nesting of complex AND/OR/NOT operators. This means that code such as: Post.all(:title => "foo") | Post.all(:title => "bar", :body => "baz") will generate a SELECT statement similar to the following SELECT title from mydomain where title = "foo" OR ( title = "bar" AND body = "baz" ) * New query engine supports range and IN predicates to the extent possible on SimpleDB, including converting empty inclusion predicates to a form that SimpleDB can understand. Exclusive ranges e.g. (0...5) now raise a NotImplementedError instead of being silently flaky. * Support for native condition expressions, e.g.: Post.all(:conditions => 'title in "%banannas%"') This includes support for variable interpolation: Post.all(:conditions => ['title = ?', "foo"]) or: post.all(:conditions => ['title = :title', {:title => "foo"}] Interpolated values will be quoted according to SimpleDB value quoting rules. * Support for arbitrarily large limits. The concept of a query limit and a batch limit have been completely separated in this release. If the batch limit is set to 100 and a query is limited to 201 items, it will generate three selects: two with "LIMIT 100" and one with "LIMIT 1". * Vastly improved logging and benchmarking. For a given high-level operation, such as a DataMapper "read", the adapter can output: * Number of individual AWS calls made (e.g. individual SELECTs) * Aggregate AWS box usage * User CPU time * System CPU time * Wallclock time * Minor enhancements: * Even better quoting. With the new SELECT translator in place, all domain names, attribute names, and values should be quoted properly according to SimpleDB rules. * No direct dependency on RightAws. All operations are performed via SDBTools now. * New "batch_limit" option to configure the maximum results requested per SELECT call. Amazon sets a cap of 250 on this value. == 1.3.0 2010-01-19 * 1 major enhancement: * Now supports :offset in queries. Combined with improved :limit support, this makes it possible to efficiently paginate result sets. * 1 minor enhancement: * Better quoting of select statements using the 'sdbtools' library. * "Null mode" can be set with :null => true. Null mode logs DB operations but does not actually connect to AWS. == 1.2.0 2010-01-13 * 2 minor enhancements: * Better support for String attributes with multiple values which were not created by the String chunking system. * Now tries to take model and repository into account when determining storage name for a table. == 1.1.0 2009-11-24 * 2 major enhancements: * Supports legacy (pre-1.0.0) objects Prior to version 1.0.0 there were some differences in how this adapter stored nils and strings containing newlines. The adapter will now detect old objects and load them correctly. * Adds object versioning New records created by the adapter now have version metadata attached to them, making it easier to change how objects are stored in the future. * 1 bug fix * Fixed an "odd number of arguments for hash" error when saving objects. * Cleanup/refactoring * Work has begun to start splitting out functionality into separate files and classes * Added unit tests to complement the existing integration tests