0.27    2008-04-18

- All SQL objects now implement a clone() method.


0.26    2008-04-04

- Some uses of Fey::SQL::Fragment::SubSelect were still lingering in
  the code, so a fresh install failed. Reported by Chad Granum.


0.25    2008-04-01

- Major internals changes to how aliasable things are created and
  used. Added two new roles, Fey::Role::MakesAliasObjects, and
  Fey::Role::HasAliasName. All literals can now be aliased (including
  Terms). A subselect is now just a Fey::SQL::Select object
  internally, which makes the internals much cleaner. This also means
  that a Fey::SQL::Select has an ->alias_name. Implemented by Dieter
  Pearcey.

- Added support for "NULLS FIRST/LAST" in ORDER BY
  clauses. Implemented by Erik Rijkers. RT #44656.


0.24    2008-03-26

- Support for UNION, INTERSECT, and EXCEPT queries. Implemented by
  Dieter Pearcey.


0.23    2008-03-23

- Fey::SQL::Insert did not make sure that the order of the
  bind_params() it returned actually matched the order of the columns
  in the "INSERT ... INTO" clause. It accidentally worked sometimes
  but was fundamentally broken. This only mattered if you were using
  the auto_placeholders feature, so it did not affect
  Fey::ORM. Reported and diagnosed by Dieter Pearcey.


0.22    2008-02-24

- A table that was passed to $sql->from($table) and also included in a
  join could show up in the FROM clause twice. Based on a patch from
  Dieter Pearcey.

- Fey::Literal::Term now accepts a list of items which it joins
  together. These items can be strings or Fey objects like columns or
  tables. This makes generating arbitrary of SQL snippets
  easier. Based on a patch from Dieter Pearcey.


0.21    2008-02-24

- If you created two Fey::Table::Alias objects with the same name
  (from the same table) and joined each object in a query, one of the
  aliases could go out of scope (because of weak refs and other
  weirdness), causing a random "cannot call method ... on an undefined
  value" error. Test by Dieter Pearcey.


0.20    2008-02-04

- No significant external changes, just lots of internal changes to
  use Moose properly. Some of this code started life pre-Moose and
  still showed signs of it.


0.1901  2008-01-24

- No code changes, just re-releasing because the last tarball was full
  of Mercurial repo junk.


0.19    2008-01-23

* BACKWARDS INCOMPATIBILITY - Fey::SQL::Select->select() no longer
  makes each element unique. Instead, it simply accepts what it's
  given and reproduces it in the original order. Sadly, this is
  necessary because sometimes you are stuck relying on the order of
  the columns being returned (because SQL is broken).


0.18    2008-12-09

- Fey::SQL::Insert->into claimed it took a table as an argument, but
  was only accepting a list of columns. Fixed by Dieter Pearcey.


0.17    2008-11-21

- Fey::SQL::Select->group_by() was not returning $self, so it could be
  in the middle of a chain. Reported by Aristotle Pagaltzis. RT
  #41062.

- Made (almost) all the methods that generate portions of a query
  public, for example, $select->select_clause(), ->where_clause(),
  etc. See the various Fey::SQL::* docs for details. Requested by
  Dieter Pearcey.


0.16    2008-11-14

- Fey::SQL::Select did not allow outer joins using table
  aliases. Reported by Aristotle Pagaltzis. RT #40856.

- Fey::SQL::Select->select will now accept another Fey::SQL::Select,
  allowing subselects in the SELECT clause. Requested by Aristotle
  Pagaltzis. RT #40858.

- Fey::Table->alias() and Fey::Column->alias() now allow a single
  argument, an alias name. This is a shortcut for the most common use
  case. Requested by Aristotle Pagaltzis.

- Added Fey::Table->aliased_column() and Fey::Table->aliased_columns()
  methods. Requested by Aristotle Pagaltzis. RT #40857.


0.15    2008-10-28

- Added Fey::SQL::Select->select_clause_elements(), most for the
  benefit of Fey::ORM.


0.14    2008-09-19

- Fey did not handle this join correctly:

    $q->from( $s->table('User') );
    $q->from( $s->table('User'), $s->table('UserGroup') );

  It added a spurious comma so you got

    FROM "User", JOIN ...

  Reported by Aristotle Pagaltzis.

- The Fey::FK docs for the constructor did not name the parameters it
  expects correctly. Reported by Aristotle Pagaltzis.


0.13    2008-09-19

- Including a table in a from clause failed. Now the Fey::Schema
  object will accept a table alias as a parameter for the
  foreign_keys_between_tables() method. When given an alias, it
  returns a Fey::FK object which contains columns from that
  alias. This faciliates creating SQL that joins on an alias. Reported
  by Aristotle Pagaltzis.


0.12    2008-09-01

- Changes to work with the latest versions of Moose.


0.11    2008-08-26

- 0.10 was missing a dependency - MooseX::AttributeHelpers.


0.10    2008-08-25

- Optimizations to cache frequently used (and rarely changing) method
  return values as attributes.

- As a result of the above, several methods that used to return arrays
  now return array references. These are Fey::FK->column_pairs(),
  Fey::Table->candidate_keys(), and Fey::Table->primary_key(), and
  Fey::Literal::Function->args().

- Overloaded objects are now handled (mostly) correctly when used as
  parameters in SQL statements. I say mostly because overloading in
  Perl is so broken that it's not possible to deal with them 100%
  correctly.


0.09    2008-07-31

- If a where clause had a subgroup after a comparison (like "WHERE x =
  1 AND ( y = 2 )", it didn't properly add the needed "AND".


0.08    2008-07-02

- The fix for "SELECT statements with multiple joins generated bogus
  SQL (a spurious comma separating JOIN clauses)" still generated
  bogus SQL in some cases.


0.07    2008-06-26

- SELECT statements with multiple joins generated bogus SQL (a
  spurious comma separating JOIN clauses).


0.06    2008-03-06

- Allow a Fey::Column object to have a column with precision but no
  length, since Postgres allows this.


0.05    2008-02-20

- Some small tweaks to take advantage of recent Moose changes.

- Added Fey::FK->pretty_print().

- Some internal changes for the benefit of Fey::ORM.


0.04    2008-02-13

- Some SQL methods (order_by() and limit()) did not return the object
  on which they were called, so they broke method chaining.


0.03    2008-02-06

- Renamed the distro from Fey-Core to just Fey.

- Added automatic use of placeholders to Fey::SQL. Now when you pass
  literal values, the default is to convert them to placeholders. The
  values can be retrieved from the new
  bind_params(). method. Suggested by Daisuke Maki.


0.02    2008-02-05

- Moved Fey::Test to its own distro, and made it a build prereq.


0.01    2008-02-02

- First release upon an unsuspecting world.
