History - arel-4.0.2 Documentation

### 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

## 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::Crud#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 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 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. 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!