[Jifty-commit] r6592 - in Jifty-DBI/trunk: lib/Jifty/DBI

Jifty commits jifty-commit at lists.jifty.org
Tue Mar 17 10:54:10 EDT 2009


Author: alexmv
Date: Tue Mar 17 10:54:08 2009
New Revision: 6592

Modified:
   Jifty-DBI/trunk/   (props changed)
   Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm
   Jifty-DBI/trunk/lib/Jifty/DBI/Schema.pm

Log:
 r43259 at kohr-ah:  chmrr | 2009-03-17 10:52:31 -0400
 Stick aliases into COLUMNS as well, for faster lookup


Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm	Tue Mar 17 10:54:08 2009
@@ -776,10 +776,7 @@
 sub __raw_value {
     my $self = shift;
 
-    my $column = $self->resolve_column( shift );
-    return unless $column;
-
-    my $column_name = $column->name;
+    my $column_name = shift;
 
     # In the default case of "yeah, we have a value", return it as
     # fast as we can.
@@ -806,7 +803,7 @@
 =head2 resolve_column
 
 given a column name, resolve it, even if it's actually an alias 
-return the column object
+return the column object.
 
 =cut
 
@@ -814,14 +811,7 @@
     my $self = shift;
     my $column_name = shift;
     return unless $column_name;
-
-    # If the requested column is actually an alias for another, resolve it.
-    my $column = $self->column($column_name);
-    if ( $column and defined $column->alias_for_column ) {
-        $column      = $self->column( $column->alias_for_column() );
-    }
-    return unless $column;
-    return $column;
+    return $self->COLUMNS->{$column_name};
 }
 
 =head2 __value
@@ -834,10 +824,10 @@
 sub __value {
     my $self = shift;
 
-    my $column = $self->resolve_column( shift );
+    my $column = $self->COLUMNS->{ +shift }; # Shortcut around ->resolve_column
     return unless $column;
 
-    my $column_name = $column->name;
+    my $column_name = $column->{name}; # Speed optimization
 
     # In the default case of "yeah, we have a value", return it as
     # fast as we can.

Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Schema.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Schema.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Schema.pm	Tue Mar 17 10:54:08 2009
@@ -376,6 +376,7 @@
 
                 # Create the helper methods for the virtual column too
                 $from->_init_methods_for_column($virtual_column);
+                $from->COLUMNS->{$aliased_as} = $virtual_column;
             } else {
                 my $aliased_as = $name .'_'. $by;
                 my $virtual_column = $from->add_column($aliased_as);
@@ -393,6 +394,7 @@
 
                 # Create the helper methods for the virtual column too
                 $from->_init_methods_for_column($virtual_column);
+                $from->COLUMNS->{$aliased_as} = $virtual_column;
             }
         } elsif ( UNIVERSAL::isa( $refclass, 'Jifty::DBI::Collection' ) ) {
             $column->by('id') unless $column->by;


More information about the Jifty-commit mailing list