[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