[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