1.7.1 - [RELEASEDATE]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #15657: Column names are now converted to lower case to extract
  from database results, since this is the setting defined by the Database
  component.
- Fixed issue #16135: ezcPersistentCodeManager now supports PHP 5.3
  namespaces.


1.7 - Monday 21 December 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- No changes.


1.7rc1 - Monday 07 December 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- No changes.


1.7beta1 - Monday 23 November 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- No changes.


1.7alpha1 - Tuesday 01 September 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Implemented enhancement #11831: ezcPersistentSession and
  ezcPersistentSessionIdentityDecorator now provide the method isRelated() to
  check if two objects are related to each other.
- Implemented enhancement #13073: The new createSubQuery() method on
  persistence sessions can be used to create a sub-select for a find query.
- Implemented enhancement #14154: Property converters are now also called for
  null values.
- Implemented enhancement #14158: If an object to be loaded is not found, an
  ezcPersistentObjectNotFoundException is thrown.


1.6 - Monday 29 June 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed message in testcase.


1.6rc1 - Monday 22 June 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- No changes.


1.6beta1 - Monday 08 June 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Note: This release changes the indexing of arrays returns by
  ezcPersistentSession and its decorators. These arrays are now indexed by
  object IDs.


1.6alpha2 - Tuesday 26 May 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Renamed ezcPersistentIdentitySession to
  ezcPersistentSessionIdentityDecorator.
- Introduced new ezcPersistentSessionFoundation interface, for
  ezcPersistentSession and its decorators.
- Finalized implementation of identity management and relation pre-fetching.


1.6alpha1 - Tuesday 21 April 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Started implementation of #12473: PersistentObject now supports basic
  identity management.


1.5.2 - Monday 11 May 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #14736: ezcPersistentSession->createRelationFindQuery() now
  supports relation names.
- Fixed issue #14863: ezcPersistentSessionInstance::reset() is now static and
  does work correctly.
- Fixed issue #14690: Extracted duplicated code into methods and avoided to
  instantiate a new generator object for each save/update (based on a patch by
  Benjamin Eberlei).


1.5.1 - Monday 30 March 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #14473: ezcPersistentFindIterator does not overwrite object
  instances anymore.
- Fixed issue #14505: Property converters don't break the state of newly saved
  objects anymore.


1.5 - Monday 05 January 2009
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- No changes


1.5rc1 - Monday 15 December 2008
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- No changes


1.5beta1 - Monday 01 December 2008
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #13463: Enhanced documentation for clarity about state array
  indices.


1.5alpha1 - Monday 10 November 2008
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Implemented issue #13218: Add lazy initialization to PersistentObject
  component.
- Implemented issue #13558: Small optimizations in the load handler.


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

- No changes.


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

- No changes


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

- No changes.


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

- Refactored ezcPersistentSession.
- Implemented enhancement #10151: Improved Database and PersistentObject
  datatype support (especially binary data). The object definitions allow to
  specify the datatype of the database column assigned to a property.
- Implemented enhancement #10373: Several relations to the same table for
  PersistentObject.
- Implemented enhancement #10727: Improved error messages for PersistentObject
  with ManualGenerator.
- Fixed issue #10205: Binding variables with an undeclared var doesn't throw
  an exception. If getState() on a persistent object does not return an array
  an exception is thrown now.
- Fixed issue #12471: PersistentObject misses support for boolean datatype.


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

- Fixed issue #12053: Optimized substr() call.
- Fixed issue #12108: ezcPersistentStateTransformer::rowToStateArray() relying
  on definitions with reverse properties set, but it's not automatic.


1.3.3 - Monday 17 December 2007
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #12214: persistent object documentation error. (Simple mapping
  example now uses ezcPersistentNativeGenerator and gives a hint on
  ezcPersistentSequenceGenerator.)


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

- Documentation updates and fixes.
- Fixed issue #11405: Ambiguous column names when using
  ezcPersistentManyToManyRelation. Column names are now correctly prefixed
  with their corresponding table names.
- Fixed issue #12082: Restoring a definition from var_export( $definition )
  PHP code.


1.3.1 - Monday 13 August 2007
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Documentation updates and fixes.


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

- Documentation updates and fixes.


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

- Documentation updates and fixes.


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

- Fixed issue #10152: Persistent Object and manual generator: string primary
  keys.
- Fixed issue #10552: ManyToMany relations with multiple columns. Mapping works
  correctly now.
- Fixed issue #10331: PersistentObject: Exceptions should become more verbose.
  ezcPersistentQueryException now contains the SQL query in its message, if
  appropriate.
- Fixed issue #10725: PersistentObject saveOrUpdate() using manualgenerator
  will trigger one extra query to check if an object is persistent (save() and
  update() do this as well just moments later...).
- Fixed issue #10726: PersistentObject definition should contain type info on
  the identifier.
- Fixed issue #10770: PersistentObject throws PDOException in some cases.
  Throws correct ezcPersistentQueryException now.


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

- Fixed testcase for manual generator giving failure for postgresql on correct
  behaviour (INSERT violating NULL contraint does give an error...).
- Fixed issue #9999: idProperty missing in definition file causes unclear
  error messages.
- Fixed issue #10106: ezcPersistentManualGenerator does not quote ID
  columnName.
- Fixed issue #10112: Lots of failures in PersistentObject tests with
  PostgreSQL.
- Fixed issue #10153: Persistent Object and manual generator (negative and 
  0 primary keys).
- Fixed issue #10369: testAddRelatedBirthdayToPerson3UpdateSuccess fails for
  no apparant reason.
- Implemented feature #8487: An interface for Persistent Objects.
- Implemented feature #10166: Cache PO-definitions.
- Implemented feature #9967: PersistentObject: getRelationQuery() method. This
  method is now called createRelationFindQuery() and is public now.
- Implemented feature #9089: Make some methods public.
  ezcPersistentSession->generateAliasMap() and ->getColumnsFromDefinition()
  are public now.
	
	
1.2 - Monday 18 December 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #9249: Save/update objects with 1:1 relations that share the
  same ID does not work.
- Fixed issue #9489: Check whether the PersistentObject and
  PersistentObjectDatabaseSchemaTiein tutorials are interlinked.
- Fixed issue #9493: Convert < and > in exception messages to ' and ' for
  Cache, ConsoleTools, ImageAnalysis, ImageConversion, PersistentObject,
  PersistentObjectDatabaseSchemaTiein.
- Fixed issue #9591: ezcPersistentSession attempts to throw non existing
  exception (typo).
- Fixed issue #9819: Let all components deal with the ezcBaseAutoloadException
  properly.


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

- Fixed issue #8962: "Sequence Generator" incorrect name for MySQL. MySQL
  should use the new "ezcPersistentNativeGenerator" from now, with
  auto_increment. "ezcPersistentSequenceGenerator" dispatches to this for BC
  reasons.
- Fixed issue #9248: SQLite driver throws wierd exception.
- Fixed issue #9335: PersistentSession should use object->getState() in all
  methods rather than accessing objects properties directly.


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

- Fixed bug #8340: Column names are not escaped.
- Fixed bug #8489: Show the absolute path in the "cannot find definition file"
  exception message.
- Fixed bug #8511: @access private for the 'id generator' classes.
- Fixed bug #8663: Undeclared property "type" used instead of "propertyType"
  in ezcPersistentObjectProperty.  This property is not used until now. And
  causes no change in the usage of the system.
- Fixed bug #9059: Incorrect prototype of ezcPersistentSession->__construct().
- Fixed bug #9187: ezcPersistentObjectDefition->__construct() has orphan
  parameters.
- Fixed bug #9189: ezcPersistentObjectProperty->__set_state() does not work
  correcty.
- Implemented suggestion #8526: Allow retrieving of the database handler and
  definition manager through the database and definitionManager properties of
  the ezcPersistentObjectSession class to help with transaction support.
- Implemented suggestion #8595: Added the ezcPersistentMultiManager class that
  serves as a singleton mechanism for ezcPersistentSession.	
- Implemented suggestion #8664: ezcPersistentSession: Cast values and skip
  undefined properties. Patch by Joel Arvidsson.
- Added support for several definition managers through
  ezcPersistentMultiManager.
- Added the method ezcPersistentFindIterator::flush method that flushes the
  rest of the resultset from an iterator. This method must be called if you
  decide not to loop over the complete resultset of an iterator.
- Deprecated the constructor parameters $key and $incrementKey to
  ezcPersistentObjectDefinition.


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

- Fixed small CS issues.


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

- Implemented feature request 8248: ezcPersistentSession should throw more
  descriptive exceptions.


1.1beta1 - Tuesday 09 May 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed #7884: ezcPersistentSession sometimes triggers PDO "General error:
  2014" exceptions.
- Fixed #8042: PersistentObject requires use of database ID counter.

  *Note:* The change involves a slight BC incompatible change.
  ezcPersistentIdentifierGenerator is no longer an interface but an abstract
  class. Implementors must change 'implements' to 'extends' to reflect this.

- Added ezcPersistentManualGenerator which can be used to set the ID's of new
  object manually.


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

- Fixed #7845: Find fetches all columns and not just the required columns.


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

- Fixed faulty numeric id check in ezcPersistentSession::loadIntoObject().


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

- Added new methods to ezcPersistentSession:

  * removeFromQuery()
  * updateFromQuery()
  * findIterator which returns a ezcResultIterator

- Added support for table and column aliases.
- Added sequence strategy system, which makes this component also work
  with PostGreSQL.
- Changed exception behavior. All errors will now throw a different exception
  class.

- Added interfaces and classes:

  * ezcPersistentIdentifierGenerator that defines the interface between
    ezcPersistentSession and the code creating unique ID's for new rows.
  * ezcPersistentSequenceGenerator that implements the ID generation
    using sequence functionality in the database handlers.
  * ezcPersistentGeneratorDefinition to set up what generator to use in the
    definition.

	
1.0beta1 - Friday 23 December 2005
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Initial release of this package.
