1.05 2007-11-15

    - Support "NOT IN" with an empty list (Aristotle, test by Mark Stosberg, RT#30752)
    - Support MySQL's "ON DUPLICATE KEY UPDATE", so it works like "SET". (Aristotle, RT#30652)

1.01 2007-07-15
    - No code changes. Just some doc improvements.

    [INTERNALS]
    - Add details about the fork to "See Also"  (suggestion from Juerd).
    - mention that SQL::KeywordSearch supports SQL::Interp-style results
    - mention DBIx::Simple support for SQL::Interp


1.00 2007-07-06

    - forked as SQL::Interp / DBIx::Interp from SQL::Interpolate
    - TRACE_SQL can now be set through an environment variable
    - sql_var() renamed to sql_type()
    - removed sql_literal(). It had been previously superceded by sql(). 
    - removed make_sql_interp and make_dbi_interp.
        These are just basic curry patterns that you probably won't need,
        and can be easily created as-needed.

    - significant doc update, mostly to simplify it
    - removed Macro support
    - removed filter support

0.40 2007-05-08
    - No code changes. Declaring stable.
    - List DBI as a dependency to squelch a test failure.

0.40_03 2006-09-27

    - Further documentation refinements. No code changes.

0.40_02 ??

	## SQL::Interp

	- POD improvements.

	- Expanded (table) identifier match:
	  /[a-zA-Z_.]+/ --> /[a-zA-Z_][a-zA-Z0-9_\$\.]*/
	  (reported by mark tiefenbruck)

	## DBIx::Interp

	- WARNING: BREAKS compatibility with 0.33.

	- DBIx::Interp now inherits from DBI.

	- Changed SQL::Interp::Key and SQL::Interp::Attr
	  to DBIx::Interp::Key and DBIx::Interp::Attr
	  respectively to reduce chance of name conflict.

	- Fixed circular references to allow garbage collection.

	- Now requires Scalar::Util.

0.33	2005-11-10

	## SQL::Interp

	- Build.PL - fixed version syntax so that META.yml is valid.

	- Added support for result sets:
	  [[1, 2], [3, 4]], 'UNION', [{x => 10, y > 11}, {x => 12, y => 13}]

	- Added support for temporary table references:
	  "SELECT * FROM", [[1, 2], [3, 4]], 'JOIN',
	                   [{x => 10, y > 11}, {x => 12, y => 13}]

	- Added support for "IS NULL" in
	    IN:  "WHERE", {bla => undef}
	    OUT: "WHERE bla IS NULL"
	  Recommended by (slaven) in
	  http://rt.cpan.org/NoAuth/Bug.html?id=11810

	- POD improvements in all modules.

0.32	2005-11-05

	## SQL::Interp

	This module has been simplified, and it incorporates
	defect corrections and style improvements.

	- Fixed ("x IN", []) to return "1=0" not "1=1".

	- Fixed ("x in", \@v) to not fail when "in" lowercase.

	- Fixed sql_interp.t on some platforms
	  (perl.cpan.testers, 254029)

	- Fixed sub-module version numbers for CPAN.

	- New sql() function (based on SQL::Interp::SQL
	  from Macro.pm).  sql_literal() is now depreciated
	  in favor of sql().

	- sql_interp() now handles recursion correctly.

	- sql_flatten() moved into SQL::Interp::Macro.

	- Added pod.t - Test::Pod checks

	- Added pod-coverage.t - Test::Pod::Coverage checks

	- Added dist.t - distribution checks

	- POD and code style improvements.

	## DBIx::Interp

	- Removed AUTOLOAD usage.

	## SQL::Macro

	The macro framework has been refined.

	- Fixed sql_and(sql()) and sql_or(sql()) to
	  now return '1=1' and '1=0' respectively (rather than "()").

	- sql_flatten() now expands depth-first rather than
	  breadth-first.

	- sql_fragment() is now depreciated.  Use sql() instead.

	- relations() is now depreciated.  Use sql_rel_filter() instead.

	- expand() no longer has $filter param.  Macros now
	  query the $interp object for state.

	- SQLFilter::macro_names() no longer used.  The $interp
	  object no longer knows which macro object use which filters.

	- SQLFilter::filter_text_fragment() no longer has $changing_ref
	  in parameter list.

	## SQL::Interp::Filter

	- sql// objects now transform into calls to make_sql().

0.31	2005-09-27

	## SQL::Interp

	- Improved error reporting by sql_interp
	  (recommended by mark stosberg)

	- Added support for ("WHERE", {x => \@v, ...})
	  ==> "WHERE (x IN (?,...) AND ...)".
	  (recommended by multiple people)

	- Generate 'WHERE id = 5 and 1=1' and 'WHERE id = 5 or 1=0'
	  rather than 'WHERE id = 5 and 1' and 'WHERE id = 5 or 0'
	  for Oracle compatibility.
	  (reported by wojciech pietron)

	- Fixed some improper handling of "use"
	  parameters, e.g. $x in "use SQL::Interp FILTER=>$x"

	- Fixed various Exporter problems from custom import
	  (reported by mark stosberg)

	- sql_interp.t and dbi.t - Fixed test case errors due to
	  different hash order on MacOS.
	  (reported by sean davis)

	- Documentation improvements.

	## SQL::Interp::Macro

	- Fixed: '^' and '$' are no longer
	  automatically placed around regexes in 'relations' parameter.
	  (reported by wojciech pietron)

	## DBIx::Interp

	- Added support for transparent
	  caching of statement handles (no need to prepare()).

	- Fixed error in STX::fetchrow_hashref returning an
	  arrayref rather than a hashref.
	  (reported by mark tiefenbruck)

	- Added Carp

0.30	2005-01-10

	## General

	- Refactored SQL::Interp module into multiple modules.
	  Everything except sql_interp-related functionality
	  moved out of SQL::Interp and into DBIx::Interp,
	  SQL::Interp::Filter, and SQL::Interp::Macro (new module).
	  (recommended by mark s)

	- Reorganized macro processing.  SQL::Interp contains
	  only hooks for macro processing, and SQL::Interp::Macro
	  implements various macros.

	## SQL::Interp

	- added sql_var type

	- added sql_literal type (thanks mark s)

	- ("WHERE x in", []) now generates "WHERE 1" not "WHERE NULL"

	- croak not die

	- macros, sql_var, and sql_literal can now exist in
	  elements of aggregates (hashref and arrayref)

	## DBIx::Interp

	- DBIx::Interp is now derived from SQL::Interp.

	- Support for statement handle sets (stx/prepare).

	- Renamed select_key() to key_field().

	## SQL::Interp::Macro

	- SQL::Interp::SQL is now a macro for uniformity.

	- new macros: relations, sql_and, sql_fragment, sql_if,
	  sql_link, sql_or, sql_paren, sql_rel

	- removed limit() macro since MySQL supports Postgres syntax.
	(thanks mark s)

	## Other

	- reorganized POD (thanks mark s)

	- reorganized test cases

0.29	2004-12-25

	### SQL::Interp features

	- Added support for ("IN", $scalarref) (thanks mark s)

	- Added support for ("INSERT INTO mytable", $scalarref)

	- Added support for ("INSERT INTO mytable", $arrayref)

	- Added support for ("WHERE {x = 3, y = 4}")

	- Added support for ("INSERT HIGH_PRIORITY DELAYED INTO mytable", $ref)
	  for mysql.

	- Added simplified syntax for table joins using
	  R(...) and LINK(...) macros via new method filter_sql().

	- Added OO-interface in addition to the functional one.

	- Added support for \%attr to be returned by dbi_interp()
	  and sent to DBI when new SQL::Intepolate::Attr object is given.
	  This object may be created by new attr() function.

	- Added support for extra $key_field to be returned by
	  dbi_interp() when instance of new SQL::Interp::Key object
	  is given.  This object may be created by new attr() function.
	  This is for using in DBI::selectall_hashref and similar methods.

	- Added exports:
           attr, dbi_interp, select_key, limit, make_sql_interp,
           make_dbi_interp, filter_sql, sql_flatten, limit

	- Added debugging options in use statement: TRACE_SQL, TRACE_FILTER.

	- Changed: less extra whitespace around SQL generated by sql_interp().

	- Changed: In limit(), for mysql, don't use bind values since they
	  don't always work right.

	- Changed: In limit(), for mysql, $start and/or $count may be undef.

	### SQL::Interp internal changes

	- Dereferencing extra reference that source filtering produces from
	  sql[$x] when $x is an arrayref or hashref is now performed more
	  immediately in SQL::Interp::SQL::new() rather than sql_interp().

	- new SQL::Interp::Limit extends SQL::Interp::Macro.

	- Moved SQL::Interp::SQL into SQL::Interp

	- Fixed some documentation (thanks mark s)

	- Added more tests, more complete docs

	### DBIx::Interp features

	- Added new() method in addition to connect() to attach existing
	  database handle (thanks mark s)

	- Added dbh() and interp() methods to expose underlying DBI and
	  SQL::Interp objects.

0.20	2004-01-03
	- Added SQL::Interp::Filter module for source filtering
	  with string-like sql// operator.

	- Added DBIx::Interp module. (thanks jim c)

	- Added SQL::Interp::SQL module.

	- Support macro calls inside SQL (e.g. LIMIT macro).

	- Renamed sql_interpolate and dbi_interpolate to sql_interp
	  and dbi_interp respectively (thanks terrence).

	- Changed SQL::Interp to not export symbols by default.

	- Limited cross-database support for LIMIT clauses.

0.10	2003-12-26
	- Initial version.