r39921 - in /trunk/libjifty-dbi-perl: Changes SIGNATURE debian/changelog debian/control debian/rules lib/Jifty/DBI.pm lib/Jifty/DBI/Collection.pm lib/Jifty/DBI/Handle.pm lib/Jifty/DBI/Schema.pm t/utils.pl
yvesago-guest at users.alioth.debian.org
yvesago-guest at users.alioth.debian.org
Wed Jul 15 08:06:34 UTC 2009
Author: yvesago-guest
Date: Wed Jul 15 08:06:17 2009
New Revision: 39921
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=39921
Log:
* New upstream release
* control: Bump Standards-Version to 3.8.2, no change
* rules: add export DH_ALWAYS_EXCLUDE=.svn (svn dir was in Examples)
Modified:
trunk/libjifty-dbi-perl/Changes
trunk/libjifty-dbi-perl/SIGNATURE
trunk/libjifty-dbi-perl/debian/changelog
trunk/libjifty-dbi-perl/debian/control
trunk/libjifty-dbi-perl/debian/rules
trunk/libjifty-dbi-perl/lib/Jifty/DBI.pm
trunk/libjifty-dbi-perl/lib/Jifty/DBI/Collection.pm
trunk/libjifty-dbi-perl/lib/Jifty/DBI/Handle.pm
trunk/libjifty-dbi-perl/lib/Jifty/DBI/Schema.pm
trunk/libjifty-dbi-perl/t/utils.pl
Modified: trunk/libjifty-dbi-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjifty-dbi-perl/Changes?rev=39921&op=diff
==============================================================================
--- trunk/libjifty-dbi-perl/Changes (original)
+++ trunk/libjifty-dbi-perl/Changes Wed Jul 15 08:06:17 2009
@@ -1,4 +1,23 @@
Revision history for Perl extension Jifty::DBI.
+
+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:
Modified: trunk/libjifty-dbi-perl/SIGNATURE
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjifty-dbi-perl/SIGNATURE?rev=39921&op=diff
==============================================================================
--- trunk/libjifty-dbi-perl/SIGNATURE (original)
+++ trunk/libjifty-dbi-perl/SIGNATURE Wed Jul 15 08:06:17 2009
@@ -15,7 +15,7 @@
Hash: SHA1
SHA1 f29ac6543498d1b0e81f387b7284a039f83e7d29 .gitignore
-SHA1 85746120ae35bfdb3811297cfc3331a0d1c56343 Changes
+SHA1 64906601c4115e5507dd41021127384db33a1e62 Changes
SHA1 006b044e48cc925d04f620f317a907d459b2d128 MANIFEST
SHA1 d3897bc376b40669acb9171adfd51f321d184fd8 META.yml
SHA1 48bd6ca8a37ec79b7cae91028d7e9489ad33a03b Makefile.PL
@@ -41,8 +41,8 @@
SHA1 7ad1da4fff7a1e7a634c9d734111c8292be08884 inc/Module/Install/Metadata.pm
SHA1 e9aa83f3e8b16ccfce544a90a57b63b70a497759 inc/Module/Install/Win32.pm
SHA1 ade2ac0b0246d4d8e28fa46942e53f6925abda46 inc/Module/Install/WriteAll.pm
-SHA1 249e7173876dca5ea914281036c853f7c9226991 lib/Jifty/DBI.pm
-SHA1 f181211220602d2883fd8d006fdb3c79ca417b05 lib/Jifty/DBI/Collection.pm
+SHA1 dd7c0df4e3dd9ff7112ff0ea2fbe501b8d786246 lib/Jifty/DBI.pm
+SHA1 79cb88cd57d1194370a6a5beab9dcd2baf5eb7b3 lib/Jifty/DBI/Collection.pm
SHA1 639ef9c81f03fb084b312a5f9a6f6a3ff63b36b7 lib/Jifty/DBI/Collection/Union.pm
SHA1 bcba77fd2bacf0475aea1de97f57365c8de92ca6 lib/Jifty/DBI/Collection/Unique.pm
SHA1 6d59ec1286f3ed887494753d01ed1f4760fd0a9b lib/Jifty/DBI/Column.pm
@@ -59,7 +59,7 @@
SHA1 67ffe7188a1f529d7594f4fa3803bcbe15ba6485 lib/Jifty/DBI/Filter/YAML.pm
SHA1 9a6fd17e677321904436fefec4d434e17a4685b1 lib/Jifty/DBI/Filter/base64.pm
SHA1 deb33fa7b35f3542aac3e2d7fb4b5d3070dc3917 lib/Jifty/DBI/Filter/utf8.pm
-SHA1 ac3555c9ec6bdf462e24d043e34b977625ca6407 lib/Jifty/DBI/Handle.pm
+SHA1 64d39ed536e8cb5465b0e1aa0f40f7bb9ae5e47a lib/Jifty/DBI/Handle.pm
SHA1 bcc7c456e1c4d0dddd5564f03c8bb03a6c7e261f lib/Jifty/DBI/Handle/Informix.pm
SHA1 338116a45f8eb6bfca5e76e8d3be78fb61fffe81 lib/Jifty/DBI/Handle/ODBC.pm
SHA1 960fd0b63f3de11924c5d47a3c0c6d1db105ed5b lib/Jifty/DBI/Handle/Oracle.pm
@@ -73,7 +73,7 @@
SHA1 3853ce268985b129f2175251fb369d9689837f39 lib/Jifty/DBI/Record/Cachable.pm
SHA1 1aac77960c508d3b2e5188e15825ad5b04391d76 lib/Jifty/DBI/Record/Memcached.pm
SHA1 53834b3315a509ba33a8647681f472d3ae7b0557 lib/Jifty/DBI/Record/Plugin.pm
-SHA1 501fe382b24b663c328fbb9c1cbf019c78e7bb53 lib/Jifty/DBI/Schema.pm
+SHA1 13b7e19a9ce99323f0ad41ce36422acb46ff07f9 lib/Jifty/DBI/Schema.pm
SHA1 a4d1a953ea4a29fe169b1c4c043ffff15b24c077 lib/Jifty/DBI/SchemaGenerator.pm
SHA1 32834b7c4cf5a8d131382fccc8db341be8768291 t/00.load.t
SHA1 9aa7fed2b2409faa4c71d2a45db210721f47403e t/01-version_checks.t
@@ -114,11 +114,11 @@
SHA1 59c44900b1cb957d262f96363ceff21b46e0d598 t/pod-coverage.t
SHA1 e9c6a5881fc60173fbc8d479c1afd2ce3b43bef1 t/pod.t
SHA1 62742c946808f35bcc8b2777e975c1ce068a0a71 t/testmodels.pl
-SHA1 b11b0df92ffef5a617cf77b74c8b963be577e3c0 t/utils.pl
+SHA1 653c2f961d8b4f195e5391cd261f37815068e8d5 t/utils.pl
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
-iD8DBQFKEqZ7sxfQtHhyRPoRAojSAJsFA4i59HHzcODcLP1I8DldBgijBQCdGsQ1
-zTjK+DO/zkobfCE4js2KjII=
-=cRri
+iD8DBQFKXDOCsxfQtHhyRPoRAst4AJ99hkuLonvmHzyX1MeoUiuuZkTIQQCdF9Cd
+uX0sd4zMEnoWm3En9My0mLw=
+=tpG0
-----END PGP SIGNATURE-----
Modified: trunk/libjifty-dbi-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjifty-dbi-perl/debian/changelog?rev=39921&op=diff
==============================================================================
--- trunk/libjifty-dbi-perl/debian/changelog (original)
+++ trunk/libjifty-dbi-perl/debian/changelog Wed Jul 15 08:06:17 2009
@@ -1,8 +1,14 @@
-libjifty-dbi-perl (0.57-2) UNRELEASED; urgency=low
+libjifty-dbi-perl (0.58-1) unstable; urgency=low
+ [ Nathan Handler ]
* debian/watch: Update to ignore development releases.
- -- Nathan Handler <nhandler at ubuntu.com> Sat, 06 Jun 2009 01:34:40 +0000
+ [ AGOSTINI Yves ]
+ * New upstream release
+ * control: Bump Standards-Version to 3.8.2, no change
+ * rules: add export DH_ALWAYS_EXCLUDE=.svn (svn dir was in Examples)
+
+ -- AGOSTINI Yves <agostini at univ-metz.fr> Wed, 15 Jul 2009 09:58:24 +0200
libjifty-dbi-perl (0.57-1) unstable; urgency=low
Modified: trunk/libjifty-dbi-perl/debian/control
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjifty-dbi-perl/debian/control?rev=39921&op=diff
==============================================================================
--- trunk/libjifty-dbi-perl/debian/control (original)
+++ trunk/libjifty-dbi-perl/debian/control Wed Jul 15 08:06:17 2009
@@ -33,7 +33,7 @@
libyaml-syck-perl
Maintainer: Debian Perl Group <pkg-perl-maintainers at lists.alioth.debian.org>
Uploaders: AGOSTINI Yves <agostini at univ-metz.fr>
-Standards-Version: 3.8.1
+Standards-Version: 3.8.2
Homepage: http://search.cpan.org/dist/Jifty-DBI/
Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/libjifty-dbi-perl/
Vcs-Browser: http://svn.debian.org/viewsvn/pkg-perl/trunk/libjifty-dbi-perl/
Modified: trunk/libjifty-dbi-perl/debian/rules
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjifty-dbi-perl/debian/rules?rev=39921&op=diff
==============================================================================
--- trunk/libjifty-dbi-perl/debian/rules (original)
+++ trunk/libjifty-dbi-perl/debian/rules Wed Jul 15 08:06:17 2009
@@ -1,4 +1,6 @@
#!/usr/bin/make -f
+
+export DH_ALWAYS_EXCLUDE=.svn
%:
dh $@
Modified: trunk/libjifty-dbi-perl/lib/Jifty/DBI.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjifty-dbi-perl/lib/Jifty/DBI.pm?rev=39921&op=diff
==============================================================================
--- trunk/libjifty-dbi-perl/lib/Jifty/DBI.pm (original)
+++ trunk/libjifty-dbi-perl/lib/Jifty/DBI.pm Wed Jul 15 08:06:17 2009
@@ -2,7 +2,7 @@
use warnings;
use strict;
-$Jifty::DBI::VERSION = '0.57';
+$Jifty::DBI::VERSION = '0.58';
=head1 NAME
@@ -18,7 +18,7 @@
This module is the direct descendent of L<DBIx::SearchBuilder>. If you're familiar
with SearchBuilder, Jifty::DBI should be quite familiar to you.
-=head2 What is it trying to do.
+=head2 Purpose
Jifty::DBI::Record abstracts the agony of writing the common and generally
simple SQL statements needed to serialize and de-serialize an object to the
Modified: trunk/libjifty-dbi-perl/lib/Jifty/DBI/Collection.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjifty-dbi-perl/lib/Jifty/DBI/Collection.pm?rev=39921&op=diff
==============================================================================
--- trunk/libjifty-dbi-perl/lib/Jifty/DBI/Collection.pm (original)
+++ trunk/libjifty-dbi-perl/lib/Jifty/DBI/Collection.pm Wed Jul 15 08:06:17 2009
@@ -117,7 +117,7 @@
);
$self->_handle( $args{'handle'} ) if ( $args{'handle'} );
$self->derived( $args{'derived'} ) if ( $args{'derived'} );
- $self->table( $self->new_item->table() );
+ $self->table( $self->record_class->table() );
$self->clean_slate(%args);
}
@@ -434,24 +434,6 @@
}
}
-# LIMIT clauses are used for restricting ourselves to subsets of the
-# search.
-sub _limit_clause {
- my $self = shift;
- my $limit_clause;
-
- if ( $self->rows_per_page ) {
- $limit_clause = " LIMIT ";
- if ( $self->first_row != 0 ) {
- $limit_clause .= $self->first_row . ", ";
- }
- $limit_clause .= $self->rows_per_page;
- } else {
- $limit_clause = "";
- }
- return $limit_clause;
-}
-
=head2 _is_limited
If we've limited down this search, return true. Otherwise, return
@@ -513,7 +495,7 @@
if ( $self->{columns} and @{ $self->{columns} } ) {
push @cols, @{ $self->{columns} };
} else {
- push @cols, $self->_qualified_record_columns( 'main' => $self->new_item );
+ push @cols, $self->_qualified_record_columns( 'main' => $self->record_class );
}
my %prefetch_related = %{ $self->prefetch_related || {} };
foreach my $alias ( keys %prefetch_related ) {
@@ -521,9 +503,9 @@
my $reference;
if ( $class->isa('Jifty::DBI::Collection') ) {
- $reference = $class->new( $self->_new_collection_args )->new_item;
+ $reference = $class->record_class;
} elsif ( $class->isa('Jifty::DBI::Record') ) {
- $reference = $class->new( $self->_new_record_args );
+ $reference = $class;
}
push @cols, $self->_qualified_record_columns( $alias => $reference );
@@ -641,7 +623,7 @@
if ( not $args{class} ) {
# Check the column
- my $column = $self->new_item->column( $args{name} );
+ my $column = $self->record_class->column( $args{name} );
$args{class} = $column->refers_to if $column;
die "Don't know class" unless $args{class};
@@ -680,7 +662,7 @@
my $last = pop @names;
my ( $class, @columns ) = $self->find_class(@names);
- $class = $class->new_item
+ $class = $class->record_class
if UNIVERSAL::isa( $class, "Jifty::DBI::Collection" );
my $column = $class->column($last);
die "$class has no column '$last'" unless $column;
@@ -702,23 +684,24 @@
my @res;
my $object = $self;
- my $item = $self->new_item;
+ my $itemclass = $self->record_class;
while ( my $name = shift @names ) {
- my $column = $item->column($name);
- die "$item has no column '$name'" unless $column;
+ my $column = $itemclass->column($name);
+ die "$itemclass has no column '$name'" unless $column;
push @res, $column;
my $classname = $column->refers_to;
unless ($classname) {
- die "column '$name' of $item is not a reference";
+ die "column '$name' of $itemclass is not a reference";
}
if ( UNIVERSAL::isa( $classname, 'Jifty::DBI::Collection' ) ) {
$object = $classname->new( $self->_new_collection_args );
- $item = $object->new_item;
+ $itemclass = $object->record_class;
} elsif ( UNIVERSAL::isa( $classname, 'Jifty::DBI::Record' ) ) {
- $object = $item = $classname->new( $self->_new_record_args );
+ $object = $classname->new( $self->_new_record_args );
+ $itemclass = $classname;
} else {
die
"Column '$name' refers to '$classname' which is not record or collection";
@@ -751,9 +734,7 @@
}
if ( UNIVERSAL::isa( $classname, 'Jifty::DBI::Collection' ) ) {
- my $item
- = $classname->new( $self->_new_collection_args )->new_item;
- my $right_alias = $self->new_alias($item);
+ my $right_alias = $self->new_alias($classname->record_class);
$self->join(
type => 'left',
alias1 => $last_alias,
@@ -764,8 +745,7 @@
);
$last_alias = $right_alias;
} elsif ( UNIVERSAL::isa( $classname, 'Jifty::DBI::Record' ) ) {
- my $item = $classname->new( $self->_new_record_args );
- my $right_alias = $self->new_alias($item);
+ my $right_alias = $self->new_alias($classname);
$self->join(
type => 'left',
alias1 => $last_alias,
@@ -1237,9 +1217,9 @@
? $self->{joins}{ $args{alias} }{class}
->new( $self->_new_collection_args )
: $self;
- my $column_obj = $class->new_item()->column( $args{column} );
-
- $self->record_class->new(handle => $self->_handle)->_apply_input_filters(
+ my $column_obj = $class->record_class->column( $args{column} );
+
+ $self->new_item->_apply_input_filters(
column => $column_obj,
value_ref => \$args{'value'},
) if $column_obj && $column_obj->encode_on_select;
Modified: trunk/libjifty-dbi-perl/lib/Jifty/DBI/Handle.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjifty-dbi-perl/lib/Jifty/DBI/Handle.pm?rev=39921&op=diff
==============================================================================
--- trunk/libjifty-dbi-perl/lib/Jifty/DBI/Handle.pm (original)
+++ trunk/libjifty-dbi-perl/lib/Jifty/DBI/Handle.pm Wed Jul 15 08:06:17 2009
@@ -72,6 +72,10 @@
Jifty::DBI::Handle->new
and there is a Jifty::DBI::Handle::(Driver) subclass for the driver you have chosen,
the handle will be automatically "upgraded" into that subclass.
+
+If there is an error, an exception will be thrown. If a connection has already
+been established and is still active, C<undef> will be returned (which is not
+an error). Otherwise, if a new connection is made, a true value will be returned.
=cut
@@ -110,7 +114,7 @@
{
my $handle
= DBI->connect( $self->dsn, $args{'user'}, $args{'password'}, $args{'extra'} )
- || Carp::croak "Connect Failed $DBI::errstr\n";
+ || Carp::croak "Connection failed: $DBI::errstr\n";
#databases do case conversion on the name of columns returned.
#actually, some databases just ignore case. this smashes it to something consistent
@@ -1319,6 +1323,61 @@
return $self->simple_query("ALTER TABLE $args{'table'} RENAME TO $args{'to'}");
}
+=head2 supported_drivers
+
+Returns a list of the drivers L<Jifty::DBI> supports.
+
+=cut
+
+sub supported_drivers {
+ return qw(
+ SQLite
+ Informix
+ mysql
+ mysqlPP
+ ODBC
+ Oracle
+ Pg
+ Sybase
+ );
+}
+
+=head2 available_drivers
+
+Returns a list of the available drivers based on the presence of C<DBD::*>
+modules.
+
+=cut
+
+sub available_drivers {
+ my $self = shift;
+
+ local $@;
+ return grep { eval "require DBD::" . $_ } $self->supported_drivers;
+}
+
+=head2 is_available_driver
+
+Returns a boolean indicating whether the provided driver is available.
+
+=cut
+
+do {
+ # lazily memoize
+ my $is_available_driver;
+
+ sub is_available_driver {
+ my $self = shift;
+ my $driver = shift;
+
+ if (!$is_available_driver) {
+ %$is_available_driver = map { $_ => 1 } $self->available_drivers;
+ }
+
+ return $is_available_driver->{$driver};
+ }
+};
+
=head2 DESTROY
When we get rid of the L<Jifty::DBI::Handle>, we need to disconnect
Modified: trunk/libjifty-dbi-perl/lib/Jifty/DBI/Schema.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjifty-dbi-perl/lib/Jifty/DBI/Schema.pm?rev=39921&op=diff
==============================================================================
--- trunk/libjifty-dbi-perl/lib/Jifty/DBI/Schema.pm (original)
+++ trunk/libjifty-dbi-perl/lib/Jifty/DBI/Schema.pm Wed Jul 15 08:06:17 2009
@@ -101,14 +101,17 @@
use Exporter::Lite ();
# TODO - This "sub import" is strictly here to catch the deprecated "length is 40".
-# Once the deprecation cycle is over we should take this away and rever to
-# "use Exporter::Lite" in the line above.
+# Once the deprecation cycle is over we should take the SIGDIE swapping away
my $old_sig_die;
sub import {
no warnings qw( uninitialized numeric );
$old_sig_die ||= $SIG{__DIE__};
$SIG{__DIE__} = \&filter_die unless $SIG{__DIE__} and $SIG{__DIE__} == \&filter_die;
+
+ strict->import;
+ warnings->import;
+
goto &Exporter::Lite::import;
}
Modified: trunk/libjifty-dbi-perl/t/utils.pl
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjifty-dbi-perl/t/utils.pl?rev=39921&op=diff
==============================================================================
--- trunk/libjifty-dbi-perl/t/utils.pl (original)
+++ trunk/libjifty-dbi-perl/t/utils.pl Wed Jul 15 08:06:17 2009
@@ -2,6 +2,7 @@
use strict;
use File::Temp ();
+use Jifty::DBI::Handle;
=head1 VARIABLES
@@ -11,19 +12,7 @@
=cut
-our @supported_drivers = qw(
- SQLite
- Informix
- mysql
- mysqlPP
- ODBC
- Oracle
- Pg
- Sybase
-);
-
-
-
+our @supported_drivers = Jifty::DBI::Handle->supported_drivers;
=head2 @available_drivers
@@ -32,7 +21,7 @@
=cut
-our @available_drivers = grep { eval "require DBD::". $_ } @supported_drivers;
+our @available_drivers = Jifty::DBI::Handle->available_drivers;
=head1 FUNCTIONS
More information about the Pkg-perl-cvs-commits
mailing list