Added as_query() support to ResultSetColumn
Rob Kinyon [Tue, 10 Feb 2009 20:23:27 +0000 (20:23 +0000)]
lib/DBIx/Class/ResultSet.pm
lib/DBIx/Class/ResultSetColumn.pm
lib/DBIx/Class/Storage/DBI/Cursor.pm
t/resultset/as_query.t

index 72af68e..febd181 100644 (file)
@@ -1711,6 +1711,14 @@ sub _remove_alias {
 
 =head2 as_query
 
+=over 4
+
+=item Arguments: none
+
+=item Return Value: [ $sql, @bind ]
+
+=back
+
 Returns the SQL query and bind vars associated with the invocant.
 
 =cut
index 7b0fee6..f272592 100644 (file)
@@ -54,6 +54,22 @@ sub new {
   return $new;
 }
 
+=head2 as_query
+
+=over 4
+
+=item Arguments: none
+
+=item Return Value: [ $sql, @bind ]
+
+=back
+
+Returns the SQL query and bind vars associated with the invocant.
+
+=cut
+
+sub as_query { return shift->_resultset->as_query }
+
 =head2 next
 
 =over 4
@@ -278,7 +294,6 @@ sub _resultset {
   );
 }
 
-
 1;
 
 =head1 AUTHORS
index e067408..6a29f46 100644 (file)
@@ -51,6 +51,14 @@ sub new {
 
 =head2 as_query
 
+=over 4
+
+=item Arguments: none
+
+=item Return Value: [ $sql, @bind ]
+
+=back
+
 Returns the SQL statement and bind vars associated with the invocant.
 
 =cut
index d5baabf..23f301f 100644 (file)
@@ -7,7 +7,7 @@ use Test::More;
 use lib qw(t/lib);
 use DBICTest;
 
-plan tests => 6;
+plan tests => 8;
 
 my $schema     = DBICTest->init_schema();
 my $art_rs     = $schema->resultset('Artist');
@@ -40,4 +40,14 @@ $art_rs = $art_rs->search({ rank => 2 });
   is_deeply( \@bind, [ [ rank => 2 ], [ name => 'Billy Joel' ] ] );
 }
 
+my $rscol = $art_rs->get_column( 'charfield' );
+
+{
+  my $arr = $rscol->as_query;
+  my ($query, @bind) = @$arr;
+
+  is( $query, "SELECT me.charfield FROM artist me WHERE ( ( ( rank = ? ) AND ( name = ? ) ) )" );
+  is_deeply( \@bind, [ [ rank => 2 ], [ name => 'Billy Joel' ] ] );
+}
+
 __END__