summaryrefslogtreecommitdiff
path: root/databases/p5-Jifty-DBI
AgeCommit message (Collapse)AuthorFilesLines
2009-11-22Update p5-Jifty-DBI from version 0.58 to version 0.59.seb2-6/+6
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
2009-08-23Update p5-Jifty-DBI from version 0.53 to version 0.58.seb2-7/+7
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
2009-04-12Update from version 0.49nb1 to 0.53.he2-8/+7
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.
2008-10-19Bump the PKGREVISION for all packages which depend directly on perl,he1-1/+2
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=...").
2008-08-25Initial import of p5-Jifty-DBI version 0.49 in the NetBSD Packagesseb3-0/+57
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.