crowdmob/goamz — pull request #280 by SteelPangolin (2014-12-01 04:35:12+00:00)
Title: Add expression support to DynamoDB

I've added [expression](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.html) support to the DynamoDB clien. This allows conditional updates based on criteria other than whether an attribute exists or not, and can be used to implement the equivalent of SQL `UPDATE table SET col=MAX(col, :new_col_value) WHERE hash_key=:hash_key_value`.

Since DynamoDB won't accept expression keys and older pre-expression keys in the same requests, I've also reimplemented the query builder's `AddExpected` and `AddUpdates` using expressions. Existing methods on the public interface haven't changed, but I've added `ConditionExpression*` methods alongside `Conditional*` methods.