Changes for Perl extension ORLite
2.00 2023-08-19 22:24:38Z
- fix some test module renamings that were missed in 1.99
- Fix test failure with SQLite 3.37.0 (RT#140748)
1.99 2023-08-13 21:09:06Z
- fix test errors with DBD::SQLite >= 1.52 (RT#149134)
1.98 2012-09-29
- When setting pragmas in void context, skip reading the changed
pragma back out of the database pointlessly.
- Removed legacy support for static ->delete('where ...')
1.97 2012-05-21
- Use reproducible longdouble in tests (HMBRAND)
1.96 2012-02-27
- Fixed a crash in the legacy delete emulation where the condition
clause provided was a constant or read-only.
1.95 2012-02-27
- Fixed a fatal rowid big when generating in array mode
1.94 2012-02-27
- Fixed a fatal rowid bug when a table had a single non-INTEGER
primary key.
- Fixed bug in affinity detection code to now set REAL and
NUMERIC affinity correctly.
1.93 2012-02-27
- The previous release 1.92 was done with a missing commit,
this release restores that missing code.
1.92 2012-02-27
- Add the ->delete_where method for bulk deletion
- Always do the initial metadata scan using ReadOnly => 1.
- When generating readonly, DBI connections use ReadOnly => 1 too.
- Quote identifiers more correctly via $dbh->quote_identifier.
- Temporarily restory the static delete call to prevent breaking
Padre and other applications still using the old version of
delete.
1.91 2012-02-23
- Calculate column affinity types in the metadata preparation phase
- Throw an exception when tables contain BLOB types and the database
is unicode, as the blob data will be corrupted.
- Improved testing for blobs and unicode, and TODO a known problem
1.90 2012-02-21
- Removed x_rowid parameter and make the rowid logic compulsory.
- Removed x_update parameter and make update method compulsory at
the table level but do not generate on the root level.
- As a result, ORLite now supports creating and updating objects
even when they come from tables without primary keys.
- Pending release as 2.00 once clarifying documentation is written.
1.54 2012-02-21
- Added experimental x_rowid parameter to maintain SQLite rowids in
the objects
1.53 2012-02-21
- Add a ->id convenience method alias when table 'foo' has a single
numeric primary key 'foo_id' so you can use $foo->id
1.52 2012-01-21
- Added initial unicode => 1 support (MEMOWE)
- Bumped Params::Util dependency to 1.0 for *LIKE fixes (ADAMK)
1.51 2011-11-25
- Module::Install::DSL updated to 1.04
- Automatically load overlay classes if there exist. That is, where a
Foo/TableName.pm module exists in addition to the automatically
generated Foo::TableName class.
1.50 2011-06-07
- Removed normalize as a supported parameter, normalizing columns turns
out not to work in practice. However, we always normalize tables to
get the class name for the table as that seems to result in class
names that make much more sense.
1.49 2011-06-01
- Adding normalize support to turn columnName into column_name
1.48 2011-01-21
- Initial support for shim => 1 to simplify customisation (ADAMK)
1.47 2010-12-08
- Adding readonly support for views (ADAMK)
1.46 2010-11-30
- Bumped File::Path dependency to 2.08 to prevent test failures
from the one shipped with Perl 5.8.9 (AZAWAWI)
- Added experimental base class ->update support (ADAMK)
- Added the qname attributes to the generator structs to simplify
and improve readability of SQL fragment strings (ADAMK)
1.45 2010-08-08
- Adding initial support for cache => $directory (ADAMK)
1.44 2010-07-23
- Upgrading to Module::Install::DSL 1.00 (ADAMK)
- Adding the per-table table_info method to get the columns (ADAMK)
- Adding tests for the per-table metadata methods (ADAMK)
1.43 2010-05-10
- Ensure 100% of tables and columns are quoted correctly (ADAMK)
1.42 2010-03-16
- Signficantly expanded documentation on the per-table class
and the methods created for it (Breno G. de Oliveira)
1.41 2010-03-09
- Added the root ->connected method to allow for some
light introspection in unusual situations (such as
knowing if it's safe to spawn an off-the-books
->connect'tion, or to detect if we are in a transaction).
- Added documentation for the ->connect method, with suitably
strident warnings about the dangers of deadlocking.
1.40 2010-02-01
- Fixed backwards test skipping logic
1.39 2010-01-29
- Typo in the tests, they now run >= instead of > 1.05
1.38 2010-01-28
- When using array => 1 on classes that we can create, add a ->set
method for setting parameters in the object safely.
1.37 2010-01-28
- Adding experimental support for the array => 1 option.
1.36 2010-01-27
- Rolled back the Template::Tiny conversion as it ended up slowing
down the code generation too much. I shall struggle on under the
old method.
1.35 2010-01-27
- Adding experimental support for accelerated XS accessors
using Class::XSAccessor. ORLite itself will not introduce a
dependency on this module, consumers of this feature will need
to do it themselves.
1.34 2010-01-26
- Major Change: Moved code generation from raw string appending to
using Template::Tiny instead. This will enable some new and more
complex improvements to the generated code.
- Added tests for the cleanup code.
1.33 2010-01-24
- When in the Perl debugger and on Perl 5.8.9 or newer,
use the $^P | 0800 in preference to dval (and always
use it even when $DEBUG is off).
1.32 2010-01-15
- Each generated class now cleans up its own persistant
connection, rather than allowing it to fall through to the
deeper DBI cleanup.
- To allow for persistant connections to readonly database,
we now always built transaction support for all databases.
However, for readonly databases we do not build the commit
method and you may only use the rollback method to end them.
- Significantly expanded the Pod documentation to provide
documentation on all of the import options.
- Add support for a cleanup option to import, which is single
explicit statement to be called on the database when the
process is shutting down. This should typically be used
ensure that a SQLite database is VACUUM'ed regularly (and at
a time when it hopefully won't impact the user much).
1.31 2010-01-02
- Adding explicit versioned-use lines to the generated code (in case
the generated code is used independantly to its creation)
1.30 2010-01-02
- Switching to a production release, CPAN Testers looks ok
- Update DBD::SQLite dependency to 1.27. Some of the metadata pragmas
have changed, and we don't want to have to support both the old and
new versions.
- ORLite will now correctly use RaiseError => 1, PrintError => 0 when
itself introspecting the schema, so a corrupted SQLite database
won't result in silent failure and the larger parent application
won't crash in unpredictable ways.
1.29_03 2009-10-01
- Reverse the prune deletion order
- Apply recursive delete flag
1.29_02 2009-09-29
- Changed ->load to use selectrow_hashref
- Allow ->load calls for multiple-columns primary keys
- All connections now explicitly RaiseError => 1 for correctness
- All connections now explicitly PrintError => 0 to avoid spewing
stuff to STDOUT/STDERR unexpectedly in embedded scenarios.
- Remove most explicit error handling and allow the native DBI
errors to cascade upwards instead.
1.29_01 2009-09-28
- Adding first experimental implementation of ->load
1.28 2009-09-25
- Adding ->prune method that so that pruning can also be done
in subclasses.
- Apply rel2abs to pruned directories so they still get deleted
even when our current directory moves.
1.27 2009-09-25
- Adding test script for the prune feature
1.26_01 2009-09-25
- Adding the prune option to have ORLite to track every file and
directory it creates and remove them during END phase.
(This should be especially handy in test scripts)
1.25 2009-08-15
- Adding base and table metadata methods to each class to support
the creation of support/extension methods
1.24 2009-08-15
- Adding support for an iterate method
1.23 2009-06-11
- Fixed a bug in method ->delete which deleted more than the actual
object in case the primary key consist of more than one column.
Added basic support for such primary keys with more than one column.
1.22 2009-06-01
- Updated to Module::Install::DSL 0.91
- Split out debug/eval as (undocument) dval function
- App support for a (currently undocumented) 'append'
param to allow sub-classes like ORLite::Mirror to merge
in additional code to the generated class.
1.21 2009-05-24
- Updated to Module::Install::DSL 0.88
- Added commit_begin and rollback_begin to allow persisting
of the connection between successive transactions.
1.20 2009-02-12
- Auto-create parent directory for ORLite files
- Add root method ->sqlite which returns the path to the
sqlite file for that database.
1.19 2009-02-03
- Adding support for using a CODE reference in the 'create'
parameter, so that the schema setup can be provided directly
in the ORLite initialisation.
1.18 2009-01-14
- Adding an ->orlite method to return the version number of the
ORLite module that was used to generate the distribution.
1.17 2009-01-03
- Adding a ->truncate method to each table
1.16 2008-12-14
- The fact that I didn't need to change ORLite for ORLite::Migrate
suggests that it's stable enough for general use (pending 2.0)
0.15 2008-09-24
- Adding support for writable pragmas
- Adding tests for pragmas, schema_version and user_version
0.14 2008-09-23
- Removed the last remnants of %ORLite::DSN and %ORLite::DBH.
- Added support for the "create" param to allow database creation
0.13 2008-09-19
- Fixed critical bug introduced in 0.10 or somewhere around there,
where column accessors were not defined for readonly classes.
(This fatally killed ORLite::Mirror)
0.12 2008-09-15
- Don't store the database values in a shared hash any more
(Makes the classes self-contained and able to run without ORLite)
- Add a tables param to the import, to allow the base database
connectivity class to be created without the table classes.
0.11 2008-09-09
- If we aren't debugging we don't need to write the temp file
0.10 2008-08-06
- Quote all column names for explicitness
0.09 2008-07-11
- Adding pragma method to the top package
- Adding user_version import param to provide the ability
to lock the Perl code against a known-good schema.
0.08 2008-06-24
- Adding an experimental -DEBUG option
0.07 2008-05-28
- Actually trust the package param
0.06 2008-05-28
- Don't add transaction support if we are readonly
0.05 2008-05-27
- Minor bug fixes in the ->import method
- Correcting the RT link in the POD.
0.04 2008-05-27
- Added ->import( \%hash ) support.
- Added support for custom passing of the target package.
- Added support for readonly database loading
(We need this for doing mirrored remote db support)
- Autodetect readonly SQLite files
0.03 2008-05-22
- Added initial foreign key support
- Added the POD documentation for ORLite root packages
- Added File::Spec dependency
0.02 2008-05-19
- Added class and instance ->delete
- Added ->new
- Added ->insert
- Added ->create
0.01 2008-05-16
- Created an initial experimental support with only ->select