[Jifty-commit] r7340 - in Jifty-DBI/branches/tisql: lib/Jifty lib/Jifty/DBI
Jifty commits
jifty-commit at lists.jifty.org
Sat Jul 18 08:47:36 EDT 2009
Author: ruz
Date: Sat Jul 18 08:47:36 2009
New Revision: 7340
Modified:
Jifty-DBI/branches/tisql/ (props changed)
Jifty-DBI/branches/tisql/Changes
Jifty-DBI/branches/tisql/SIGNATURE
Jifty-DBI/branches/tisql/lib/Jifty/DBI.pm
Jifty-DBI/branches/tisql/lib/Jifty/DBI/Collection.pm
Jifty-DBI/branches/tisql/lib/Jifty/DBI/Handle.pm
Log:
* sync with trunk
Modified: Jifty-DBI/branches/tisql/Changes
==============================================================================
--- Jifty-DBI/branches/tisql/Changes (original)
+++ Jifty-DBI/branches/tisql/Changes Sat Jul 18 08:47:36 2009
@@ -1,5 +1,24 @@
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:
* Use eval {} in Jifty::DBI::Handle's DESTROY block when manipulating DBI
Modified: Jifty-DBI/branches/tisql/SIGNATURE
==============================================================================
--- Jifty-DBI/branches/tisql/SIGNATURE (original)
+++ Jifty-DBI/branches/tisql/SIGNATURE Sat Jul 18 08:47:36 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: Jifty-DBI/branches/tisql/lib/Jifty/DBI.pm
==============================================================================
--- Jifty-DBI/branches/tisql/lib/Jifty/DBI.pm (original)
+++ Jifty-DBI/branches/tisql/lib/Jifty/DBI.pm Sat Jul 18 08:47:36 2009
@@ -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: Jifty-DBI/branches/tisql/lib/Jifty/DBI/Collection.pm
==============================================================================
--- Jifty-DBI/branches/tisql/lib/Jifty/DBI/Collection.pm (original)
+++ Jifty-DBI/branches/tisql/lib/Jifty/DBI/Collection.pm Sat Jul 18 08:47:36 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);
}
@@ -495,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 ) {
@@ -503,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 );
@@ -623,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};
@@ -662,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;
@@ -684,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";
@@ -733,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,
@@ -746,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,
@@ -1219,9 +1217,9 @@
? $self->{joins}{ $args{alias} }{class}
->new( $self->_new_collection_args )
: $self;
- my $column_obj = ( $class->isa('Jifty::DBI::Collection')? $class->new_item : $class )->column( $args{column} );
+ my $column_obj = ( $class->isa('Jifty::DBI::Collection')? $class->record_class : $class )->column( $args{column} );
- $self->record_class->new(handle => $self->_handle)->_apply_input_filters(
+ $self->new_item->_apply_input_filters(
column => $column_obj,
value_ref => \$args{'value'},
) if $column_obj && $column_obj->encode_on_select;
Modified: Jifty-DBI/branches/tisql/lib/Jifty/DBI/Handle.pm
==============================================================================
--- Jifty-DBI/branches/tisql/lib/Jifty/DBI/Handle.pm (original)
+++ Jifty-DBI/branches/tisql/lib/Jifty/DBI/Handle.pm Sat Jul 18 08:47:36 2009
@@ -73,6 +73,10 @@
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
sub connect {
@@ -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
More information about the Jifty-commit
mailing list