[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