[Jifty-commit] r1331 - Jifty-DBI/trunk/lib/Jifty/DBI
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Wed Jun 21 10:06:15 EDT 2006
Author: clkao
Date: Wed Jun 21 10:06:02 2006
New Revision: 1331
Modified:
Jifty-DBI/trunk/lib/Jifty/DBI/Collection.pm
Log:
Allow collection SELECTs to have preload_columns defined.
Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Collection.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Collection.pm (original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Collection.pm Wed Jun 21 10:06:02 2006
@@ -54,7 +54,7 @@
use Clone;
use Carp qw/croak/;
use base qw/Class::Accessor::Fast/;
-__PACKAGE__->mk_accessors(qw/pager/);
+__PACKAGE__->mk_accessors(qw/pager preload_columns/);
=head1 METHODS
@@ -384,7 +384,7 @@
# DISTINCT query only required for multi-table selects
$self->_distinct_query( \$query_string );
} else {
- $query_string = "SELECT main.* FROM $query_string";
+ $query_string = "SELECT ".$self->_preload_columns." FROM $query_string";
$query_string .= $self->_group_clause;
$query_string .= $self->_order_clause;
}
@@ -395,6 +395,19 @@
}
+=head2 preload_columns
+
+The columns that the query would load for result items. By default it's everything.
+
+XXX TODO: in the case of distinct, it needs to work as well.
+
+=cut
+
+sub _preload_columns {
+ my $self = shift;
+ return 'main.*' unless $self->preload_columns;
+ return join(',', map { "main.$_" } @{$self->preload_columns});
+}
=head2 distinct_required
More information about the Jifty-commit
mailing list