=== 8.0.0 / 2017-02-21

* Enhancements

  * Remove deprecated type casting support in Arel
  * Frozen all string literals in Arel

=== 7.1.1 / 2016-07-27

* Bug Fixes

  * Fix warning in `Casted#hash`

=== 7.1.0 / 2016-07-19

* Enhancements

  * Support Ruby 2.4 unified Integer class
  * Implement `CASE` conditional expression
  * Support for Bitwise Operations as `InfixOperations`

=== 7.0.0 / 2015-12-17

* Enhancements

  * Remove deprecated method `Table#primary_key`
  * Remove engine from the constructor arguments `Arel::Table`
  * Deprecate automatic type casting within Arel

=== 6.0.0 / 2014-11-25

* Enhancements

  * Remove deprecated `Arel::Expression`
  * Remove deprecated `Arel::SqlLiteral`
  * Remove deprecated `SelectManager#joins`
  * Remove deprecated `SelectManager#to_a`
  * Remove deprecated `Arel::Sql::Engine`
  * Remove deprecated `Arel::InnerJoin` constant
  * Remove deprecated `Arel::OuterJoin` constant

== 5.0.0 / 2013-12-04

* Enhancements

  * Remove deprecated code

* Bug Fixes

  * Fix serializing a relation when calling `to_yaml`

=== 4.0.2 / 2014-02-05

 * Bug Fixes

  * Fix `SqlLiteral` YAML serialization
  * PostgreSQL bugfix for invalid SQL in subqueries

== 4.0.1 / 2013-10-22

* Enhancements

  * Cache visitor dispatch on a per-visitor basis
  * Improve performance of #uniq across a large number of nodes

* Bug Fixes

  * Make visitors threadsafe by removing @last_column
  * Support `columns_for_distinct` with Oracle adapter

== 3.0.3 / 2013-11-12

* Enhancements

  * Support ANSI 2003 window functions

* Bug Fixes

  * Fix joins in Informix

== 3.0.2 / 2012-02-21

* Enhancements

  * Added a module for visiting and transforming bind values
  * Fix in [] to be false, not in [] to be true

* Bug Fixes

  * Revert fix for LIMIT / OFFSET when query is ordered in Oracle

== 3.0.1 / 2012-02-17

* Bug Fixes

  * Fixed LIMIT / OFFSET when query is ordered in Oracle

== 3.0.0 / 2012-01-12

* Enhancements

  * Support connection pool and schema cache

* Bug Fixes

  * Conditions with no column can be followed by other conditions in Postgres

== 2.2.3 / 2012-02-21

* Enhancements

  * Added a module for visiting and transforming bind values

== 2.2.2 / 2012-02-20

* Enhancements

  * Support LOCK
  * Allow using non-table alias as a right-hand relation name
  * Added SelectManager#distinct

== 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.
  * Parenthesis are suppressed with nested unions in MySQL. Thanks jhtwong!

== 2.1.3 / 2011-06-27

* Bug Fixes

  * Fixed broken gem build.

== 2.1.2 / 2011-06-27

* Bug Fixes

  * Visitors can define their own cache strategy 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 Active Record.

== 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 Active Record (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!
