[Dbix-class] DBIx-Class-ResultSet-AdvancedWebSearch
Marc Mims
marc at questright.com
Thu Sep 25 17:19:17 BST 2008
* Marc Mims <marc at questright.com> [080925 08:48]:
> Unless I misread the code...
I did, indeed, mirsead the code. Here's a version that returns the
correct $full_name and join condition.
-Marc
diff --git a/lib/DBIx/Class/ResultSet/AdvancedWebSearch.pm b/lib/DBIx/Class/ResultSet/AdvancedWebSearch.pm
index 8dcc2d2..2b72854 100644
--- a/lib/DBIx/Class/ResultSet/AdvancedWebSearch.pm
+++ b/lib/DBIx/Class/ResultSet/AdvancedWebSearch.pm
@@ -25,23 +25,12 @@ sub advanced_search {
}
sub parse_column {
- my ( $self, $field) = @_;
- if( $field =~ /(.*?)\.(.*)/ ){
- my $first = $1;
- my $rest = $2;
- my( $column, $join ) = $self->parse_column( $rest );
- if ( $join ) {
- return $column, { $first => $join };
- }else{
- return $first . '.' . $column, $first;
- }
- }
- elsif( $field ){
- return $field;
- }
- else{
- return;
- }
+ my ($col, $join, @rest) = reverse split /\./, $_[1];
+ return $col unless $join;
+
+ my $full_name = "${join}.${col}";
+ $join = { $_ => $join } for @rest;
+ return ($full_name, $join);
}
More information about the DBIx-Class
mailing list