== 2.2.1 / 2011-09-15

* Enhancements

  * Added UpdateManager#key to access the key value
  * Added SelectManager#projections= to override any existing projections
  * Added SelectManager#source to get the source of the last select core in the AST

== 2.2.0 / 2011-08-09

* Bug Fixes

  * The database connection caches visitors for generating SQL.
  * FALSE and TRUE nodes can be constructed.
  * Fixed ORDER BY / LIMIT clauses for UPDATE statements in Oracle.

== 2.1.4 / 2011-07-25

* Bug Fixes

  * Fix depth-first traversal to understand ascending / descending nodes.
  * Parentheis are suppressed with nested unions in MySQL. Thanks jhtwong!

== 2.1.3 / 2011-06-27

* Bug Fixues

  * Fixed broken gem build.

== 2.1.2 / 2011-06-27

* Bug Fixes

  * Visitors can define their own cache strategey so caches are not shared.
    Fixes #57
  * Informix support fixed.  Thanks Khronos.
  * Ordering nodes broken to subclasses.  Thanks Ernie Miller!
  * Reversal supported in ordering nodes.  Thanks Ernie Miller!

== 2.1.1 / 2011/05/14

* Bug fixes

  * Fixed thread safety bug in ToSql visitor.  Thanks Damon McCormick and
    Cameron Walters!

== 2.1.0 / 2011/04/30

* Enhancements

  * AST is now Enumerable
  * AND nodes are now n-ary nodes
  * SQL Literals may be used as Attribute names
  * Added Arel::Nodes::NamedFunction for representing generic SQL functions
  * Add Arel::SelectManager#limit=
  * Add Arel::SelectManager#offset
  * Add Arel::SelectManager#offset=
  * Added Arel::SelectManager#create_insert for building an insert manager.
  * SQL Literals are allowed for values in INSERT statements.
  * Math operations have been added to attributes, thanks to
    Vladimir Meremyanin.

* Bug fixes

  * MSSQL adds TOP to sub selects
  * Assigning nil to take() removes LIMIT from statement.
  * Assigning nil to offset() removes OFFSET from statement.
  * TableAlias leg ordering fixed

* Deprecations

  * Calls to `insert` are deprecated. Please use `compile_insert` then call
  `to_sql` on the resulting object and execute that SQL.

  * Calls to `update` are deprecated. Please use `compile_update` then call
  `to_sql` on the resulting object and execute that SQL.

  * Calls to `delete` are deprecated. Please use `compile_delete` then call
  `to_sql` on the resulting object and execute that SQL.

  * Arel::Table#joins is deprecated and will be removed in 3.0.0 with no
  replacement.

  * Arel::Table#columns is deprecated and will be removed in 3.0.0 with no
  replacement.

  * Arel::Table.table_cache is deprecated and will be removed in 3.0.0 with no
  replacement.

  * Arel::Nodes::And.new takes a single list instead of left and right.

  * Arel::Table#primary_key is deprecated and will be removed in 3.0.0 with no
  replacement.

  * Arel::SelectManager#where_clauses is deprecated and will be removed in
  3.0.0 with no replacement.

  * Arel::SelectManager#wheres is deprecated and will be removed in
  3.0.0 with no replacement.

== 2.0.9  / 2010/02/25

* Bug Fixes

  * Custom LOCK strings are allowed. Fixes LH # 6399
    https://rails.lighthouseapp.com/projects/8994/tickets/6399-allow-database-specific-locking-clauses-to-be-used

  * Strings passed to StringManager#on will be automatically tagged as SQL
    literals. Fixes Rails LH #6384
    https://rails.lighthouseapp.com/projects/8994/tickets/6384-activerecord-303-and-3-0-stable-generate-invalid-sql-for-has_many-through-association-with-conditions

== 2.0.8  / 2010/02/08

* Bug Fixes

  * Added set operation support
  * Fixed problems with *_any / *_all methods.

== 2.0.7

* Bug Fixes

  * Limit members are visited
  * Fixing MSSQL TOP support

== 2.0.6 12/01/2010

* Bug Fixes

  * Rails 3.0.x does not like that Node is Enumerable, so removing for now.

== 2.0.5 11/30/2010

* Enhancements

  * Arel::Visitors::DepthFirst can walk your AST depth first
  * Arel::Nodes::Node is enumerable, depth first

* Bug fixes

  * #lock will lock SELECT statements "FOR UPDATE" on mysql
  * Nodes::Node#not factory method added for creating Nodes::Not nodes
  * Added an As node

* Deprecations

  * Support for Subclasses of core classes will be removed in ARel version
    2.2.0

== 2.0.4

* Bug fixes

  * Speed improvements for Range queries.  Thanks Rolf Timmermans!

== 2.0.3

* Bug fixes

  * Fixing Oracle support
  * Added a visitor for "Class" objects

== 2.0.2

* Bug fixes

  * MySQL selects from DUAL on empty FROM
  * Visitor translates nil to NULL
  * Visitor translates Bignum properly

== 2.0.1

* Bug fixes

== 2.0.0 / 2010-08-01
* Enhancements

  * Recreate library using the Visitor pattern.
    http://en.wikipedia.org/wiki/Visitor_pattern

== 0.3.0 / 2010-03-10

* Enhancements

  * Introduced "SQL compilers" for query generation.
  * Added support for Oracle (Raimonds Simanovskis) and IBM/DB (Praveen Devarao).
  * Improvements to give better support to ActiveRecord.

== 0.2.1 / 2010-02-05

* Enhancements

  * Bump dependency version of activesupport to 3.0.0.beta

== 0.2.0 / 2010-01-31

  * Ruby 1.9 compatibility
  * Many improvements to support the Arel integration into ActiveRecord (see `git log v0.1.0..v0.2.0`)
  * Thanks to Emilio Tagua and Pratik Naik for many significant contributions!

== 0.1.0 / 2009-08-06

* 1 major enhancement

  * Birthday!
