1.4.7 - [RELEASEDATE]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #16208: Warning in ezcQuery alias function


1.4.6 - Monday 27 July 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #11784: Fixed quoting of sub-selects in "IN" expression.


1.4.5 - Monday 11 May 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #14855 (IN with subselects generates excessive braces).


1.4.4 - Monday 30 March 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #14464: ezcDbFactory::create shouldn't throw a warning on invalid
  parameter.


1.4.3 - Monday 09 February 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed ezcQueryInsert and ezcQueryUpdate examples. (Related to issue #14320).


1.4.2 - Monday 05 January 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #14197: ezcQuerySubselect API doc has some typos and words left
  away.


1.4.1 - Monday 01 December 2008
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #14014: Typo in documentation for ezcQueryUpdate.


1.4 - Monday 16 June 2008
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #13188: Sub select queries are no more quoted in SQLite IN
  statements.


1.4rc1 - Tuesday 10 June 2008
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- No changes


1.4beta1 - Tuesday 27 May 2008
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #12150: Connect to MSSQL database fails due to wrong driver
  specification.


1.4alpha1 - Monday 05 May 2008
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Implemented issue #10753: ezcDbQuery should implement __toString().
- Implemented issue #12540: subselect support for other query types besides
  SELECT.


1.3.4 - Monday 14 January 2008
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #11266: ezcQueryExpression->in( 'colname', array() ) produces a
  strange exception message.
- Fixed issue #11786: quoteIdentifier() incorrectly quotes unambiguous
  identifiers.
- Documented issue #10161: Column names are always lowercase.


1.3.3 - Wednesday 05 December 2007
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed bug #12152: The SQLite's unixTimestamp() expression function
  implementation uses the current UTC offset, instead of the UTC offset that
  belongs to the date for which a Unix timestamp should be generated.


1.3.2 - Wednesday 28 November 2007
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed bug #11345: Encoding problem with Database component (No info about
  it).


1.3.1 - Monday 12 November 2007
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #11609: Subselect query documentation is incorrect.
- Fixed issue #11687: Mssql DSN with port does not work.
- Fixed issue #11700: Subselects only work when there is a database instance
  set.


1.3 - Monday 02 July 2007
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Documentation updates.


1.3rc1 - Monday 25 June 2007
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #10884: Database: Limit in Oracle only works with 1000 elements
  at maximum.
- Fixed issue #10937: ezcDbHandler::hasFeature() is not implemented properly
  anywhere.
- Fixed issue #10943: Add parameter to specify type of value in bindValue() 
  and bindParam().
- Fixed issue #10986: in() expression test for sub selects fails in PHP 5.1.6.
- Documentation fixes and updates.


1.3beta2 - Thursday 31 May 2007
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #10802: MSSql handler misses identifierQuoteChars.
- Fixed issue #10803: Format of ezcQueryExpressionMssql::now().
- Fixed issue #10797: Do not quote numbers and subqueries in IN()


1.3beta1 - Monday 07 May 2007
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #8240: ezcQueryExpression::in does not work with strings.
- Fixed issue #8520: The non trivial join methods have incomplete
  documentation.
- Fixed issue #9526: Implemented expression now() for each database handler.
- Fixed issue #10529: Tests for quoting of strings in query expressions.
- Implemented feature #7772: SQL Server implementation for the Database package.
  Based on contributions by Joel Arvidsson and Friedel Hill.
- Implemented feature #8473: Oracle Limit/Offset optimization.
- Implemented feature #8448: Select Distinct not supported
- Implemented feature #9960 [Database] sql abstraction.  Based on contributions by
  Joel Arvidsson and Friedel Hill.
- Implemented feature #9965: Support for delayed initialization through
  ezcBaseInit.


1.2 - Monday 18 December 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #9219: Added sql HAVING condition. Patch by Christian Michel.
- Fixed issue #9439: PersistentObject doesn't handle sequence value 
  generation right for Oracle.
- Fixed issue #9466: Oracle limit does not return $this.
- Fixed issue #9567: query->bindValue() sets value in query->boundParameters.
- Fixed issue #9841: Sqlite file DSN on Windows added an incorrect slash.
- Fixed ezcQueryExpressionOracle, corrected processing subString() in Oracle.


1.2beta2 - Monday 20 November 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Added the ezcDatabase::getIdentifiers() method that returns a list of
  identifiers of the registered database instances.


1.2beta1 - Tuesday 24 October 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Added the ezcDbHandler::quoteIdentifier() method that you can use to quote
  identifiers (such as table and column names) with.
- Added support for SQLite in-memory databases through the DSN:
  "sqlite://:memory" and the dbParams:
  "array( 'handler' => 'sqlite', 'port' => 'memory' );".
- Fixed bug #9159: No alias substitution for 'table.column' syntax.


1.1.4 - Tuesday 24 October 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed bug #9220: Wrong attribute used in ezcDbHandler::commit().
- Fixed bug #9221: ezcDbTransactionException::__construct() does not handle
  message argument correctly.


1.1.3 - Monday 09 October 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed handling queries like "SELECT 1+1" in Oracle.


1.1.2 - Monday 28 August 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	
- Fixed bug #8835: Documentation of lOr and lAnd.

	
1.1.1 - Monday 07 August 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed bug #8360: ezcQueryExpressionOracle::concat() calls non-existing
  method.
- Added ezcQuery::resetBinds() which allows you to reset the bound values and
  parameters associated with a query.


1.1 - Monday 12 June 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed bug #8428: LIMIT doesn't work correctly, inverted values.


1.1rc1 - Monday 29 May 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Added examples of using multi-join and subselect syntax to the tutorial.


1.1beta2 - Tuesday 09 May 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed problem where rollback would not be performed even though it was the
  innermost call to it.


1.1beta1 - Wednesday 19 April 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Improved support for SQLite right join emulation.

ezcQuery
========
- Added support for subselects.
- Added support for multi-join queries.
- Changed the requirement that select(), from(), where() and the join methods
  could only be used once for a query object.


1.0.1 - Monday 20 February 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed bug #7764: ezcQuerySelect doesn't reset queries correctly	


1.0 - Monday 30 January 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Removed ezcDbHandler::begin(). It was a rename of PDO::beginTransaction()
  because of the strange PDO naming. Unfortunately it caused problems with
  re-implementations.
- Removed ezcDbHandler::processLimitOffset. Leftover from old design.


1.0rc1 - Monday 16 January 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Added support for aliases of column names.
- Added SQLite driver.
- Changed exception behavior. All errors will now throw a different exception
  class.
- Changed class names:

  * ezcQueryOracle to ezcQuerySelectOracle

- Removed destructor in ezcDbHandler. We should not throw exceptions that
  can't be caught.	

ezcDbFactory
============

- Added the static method getImplementations() which returns a list of all
  available database implementations.
- Changed exception usage to reveal more information in case no database type
  is passed, or when a not-supported database type is used.
- Fixed bug where we did not check if bound parameters actually existed before
  binding them.


1.0beta2 - Thursday 22 December 2005
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Refactored query design:

  * Changed ezcQuery to an abstract class, which forms the base for the more
    specific classes.
  * Added ezcQuerySelect which now contains the functionality ezcQuery had
    before.
  * Added ezcQueryUpdate.
  * Added ezcQueryInsert.
  * Added ezcQueryDelete.
  * Added ezcQueryExpression with all the SQL expressions. ezcQuery has a
    publically available pointer to it through 'expr'.
  * The various query types can now be retrieved through
    create(Select/Insert/Update/Delete) query in the handler classes.

	
1.0beta1 - Friday 25 November 2005
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Initial release of this package.
