Age | Commit message (Collapse) | Author | Files | Lines |
|
Upstream changes:
0.59 Wed Nov 18 20:12:57 EST 2009
- Features:
* Support a special value of "all" in set_page_info
- Fixes:
* Make "default is ''" propagate correctly to ALTER and CREATE TABLE
statements
- Installation:
* Our Module::Install was hilariously out of date
|
|
Pkgsrc changes:
- Perl 5.10, which includes version.pm, is now required by pkgsrc, hence
the dependency on devel/p5-version can be removed
- Set LICENSE
Upstream changes:
0.58 Tue Jul 14 03:21:21 EST 2009
- Possible incompatibilities:
* Modules which use Jifty::DBI::Schema will have strict and warnings
automatically applied to them.
- Features:
* Jifty::DBI::Handle now has methods for supported_drivers,
available_drivers, and is_available_driver.
- Fixes:
* Remove unused _limit_clause method
* Various error message improvements
* Use ->new_item instead of ->record_class->new since it was a performance
hit in Jifty
* Avoid cals to ->new_item where possible
- Documentation:
* Document connect's quirky return value
0.57 Tue May 19 08:02:03 EDT 2009
- Major bugfixes:
* Use eval {} in Jifty::DBI::Handle's DESTROY block when manipulating DBI
Alterations to the DBI object in the DESTROY block must be wrapped in
an eval {}, as object destruction order is not guaranteed during
global destruction, and this interacts poorly with DBI's tie'd object.
* During DESTROY, don't explicitly disconnect a dbh set InactiveDestroy
The InactiveDestroy flag on DBI objects prevent them from being
implicitly disconnected when they go out of scope -- for example, in
the case where a process has forked, and two processes hold the socket
open.
However, it does not prevent them from being _explicitly_
disconnected, as we were doing in Jifty::DBI::Handle's DESTROY method.
This caused InactiveDestroy to never kick in, causing either a shared
socket, or two closed handles after a fork. We prevent this by having
Jifty::DBI::Handle respect InactiveDestroy in its DESTROY method.
* Do not use Scalar::Defer defaults for columns' defaults in the db
- New features:
* Add a display_length attribute on columns
* add schema manipulation tables: rename_column and rename_table
* If a column's default is a record, call its id method
- Fixes:
* Improve SQL error message and avoid its duplication
* Pull the input_ and output_filters out of the instance hash
- Tests:
* Added a unit test for the SaltHash filter
* use drop_table_if_exists in tests
* add drop_table_if_exists in t/utils.t
* unconditionaly drop tables for testing
* test rename_table
* add tests for rename_column
* SaltHash test does not need an is_deeply()
* Don't explicitly disconnect the handle, DESTROY handles it better
* Test for warnings instead of letting them leak into the test output
|
|
Pkgsrc changes:
o Add perl>=5.10 as an alternative to p5-version
Upstream changes:
0.53 Wed Mar 25 15:27:03 EDT 2009
- Major bugfixes:
* On rollback, flush the record cache. This fixes a bug when SQLite
reuses primary keys after rollback, and thus the record cache is
wrong.
* Apply filters to "default is ..." values, so "is boolean, default is
0" works on postgres, for instance
* $self->_new_collection_args is passed to the ->new constructor of a
collection, not its ->new_item method
- Performance fixes:
* Don't call accessor twice when we have values around
* Don't create temporary variables we don't need around, just return
* Optimize for the case when there are no output filters
* Play with self/class only when passed argument is not a reference
* In _do_search, separate prefetch and non-prefetch paths; the latter
is a much tighter loop
* Refactor first pass over results in prefetch path
* Move a ->new_item call where we only need it
* Jifty::DBI::Handle::SQLite - LOWER() in SQLite is expensive; it's
easier just put COLLATE NOCASE on the column side. Bump DBD::SQLite
to 1.14 which gives us COLLATE NOCASE.
* Cache on record table, not record class so subclasses also get
cached correctly. If the data in the underlying table changes,
regardless of the class you're using, you want to load the new data.
* Refactor _qualified_record_columns
* call ->table for defaulting only when we actually want defaulting
* Selay some method calls when possible in limit
* Minor refactoring of _get_alias
* grep before looping to loop over fewer values in load_from_hash
* Cache load attempts in new_item in a local static cache
* Cache filter class load attempts in _apply_filters
* Save some slow Class::Accessor calls in Jifty::DBI::Filter
* Stick aliases into COLUMNS as well, for faster lookup
* Provide a faster load_from_hash for when we're being called from
do_search
- Datetime fixes:
* _formatter is *inheritable* class data. If it happens to get set by
the DateTime filter before getting set by one of its subclasses (the
Date and Time filters), than it is stuck on the DateTime _formatter
setting because the subclasses don't override it. There are a
couple solutions, the simplest being to check the value of _strptime
and update/override _formatter if it is different, which is what
I've done here. (This may not be the most optimized solution.)
* Require Time::Duration::Parse 0.06 to win us decimal durations like
1.5h
* Fix a broken regex that just happened to work because we only fed it
correct data
* Add date_only method in date and datetime filters
* For date-only timestamps, set hour, minute, and second to zero
* Include the datetime string we're trying to decode in parse failure
cluck
* Use DateTime's strptime since we don't want additional logic
- Documentation fixes:
* Minor POD improvement for debian lintian in Jifty::DBI::Column
* Adding an example of open_paren/close_paren and limit subclause.
* Added documentation for "IS" on limit().
* Additional docs for load_by_cols
* Update record_class' docs
- Minor bugfixes:
* Perltidy, primarily for indentation fixes
* Update copyright year to 2009
* collections can now clear_order_by
* requires('perl' => '5.8.3') confuses M:I. the "correct" incantation
is perl_version('5.8.3')
* Add the ability to unload columns and prefetched values
* Use $args{'collection'}->limit instead of
$self->Jifty::DBI::Collection::limit so we don't break
* We accept IN or = as operators for array ref. values, so match
against that (and do it case insensitively to boot)
* Allow validators to get extra arguments
* Storable with non-bytea is OK if we base64
* add double naming schema for record references, using name, name_by
* fixed situation with 'column X_not_id refers_to M by "not_id"'
* Aliases should be virtual
* When we have group_by, the first column may not be enough to
distinctify the rows. But since they're grouped, they're all
distinct by definition.
* turn _handle _is_limited rows_per_page into accessors
* Clean out fetched when we load_from_hash
* Pass arguments database_Version to the super method
* Don't chomp Collection or s if prev character is ':', die instead,
it can happen for annon collections based either on JDBI::Collection
or J::Collection
* No need to setup the pager, its constructor does that for us;
actually it's really questionable that we need to setup pager when
there is no paging by default
* Don't optimize left joins on mysql 5.0 and newer, may be other DBs
can drop this too
* $caller->COLUMNS should not contain virtual methods from plugins
* Add "raw value" internal values
* Plugin import must not call ->columns which causes incorrect
caching.
|
|
to trigger/signal a rebuild for the transition 5.8.8 -> 5.10.0.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=...").
|
|
Collection.
The Perl 5 module Jifty::DBI deals with databases, so that you
don't have to. This module provides an object-oriented mechanism
for retrieving and updating data in a DBI-accessible database.
This module is the direct descendent of DBIx::SearchBuilder. If
you're familiar with SearchBuilder, Jifty::DBI should be quite
familiar to you.
|