Moved some SQL parsing of ORDER BY from _select_args() to retrieve_from_sql() where...
Rob Kinyon [Thu, 19 Mar 2009 20:35:37 +0000 (20:35 +0000)]
lib/DBIx/Class/CDBICompat/Retrieve.pm
lib/DBIx/Class/Storage/DBI.pm

index 4c36887..b2e891d 100644 (file)
@@ -54,6 +54,10 @@ sub retrieve_from_sql {
       push @rest, { rows => $1 };
   }
 
+  if ( $cond =~ s/\bORDER\s+BY\s+(.*)$//i ) {
+    push @rest, { order_by => $1 };
+  }
+
   return $class->search_literal($cond, @rest);
 }
 
index 4bfa2e8..f51a850 100644 (file)
@@ -1384,14 +1384,6 @@ sub _select_args {
   my ($self, $ident, $select, $condition, $attrs) = @_;
   my $order = $attrs->{order_by};
 
-  if (ref $condition eq 'SCALAR') {
-    my $unwrap = ${$condition};
-    if ($unwrap =~ s/ORDER BY (.*)$//i) {
-      $order = $1;
-      $condition = \$unwrap;
-    }
-  }
-
   my $for = delete $attrs->{for};
   my $sql_maker = $self->sql_maker;
   $sql_maker->{for} = $for;