Class-DBI-ConceptSearch
view release on metacpan or search on metacpan
lib/Class/DBI/ConceptSearch.pm view on Meta::CPAN
my($x,$y,$z) = $col =~ /^(.+\()(.+)(\))$/;
$col = $y if $y;
my $column = $class->find_column($col)
|| (List::Util::first { $_->accessor eq $col } $class->columns)
|| $class->_croak("$col is not a column of $class");
push @cols, $y ? "$x$col$z" : $col;
push @vals, $class->_deflated_column($column, $val);
}
my $frag = join " AND ",
map defined($vals[$_]) ? "$cols[$_] $search_type ?" : "$cols[$_] IS NULL",
0 .. $#cols;
$frag .= " ORDER BY $search_opts->{order_by}"
if $search_opts->{order_by};
return $class->sth_to_objects($class->sql_Retrieve($frag),
[ grep defined, @vals ]);
};
return 1;
}
=head2 search
Title : search
Usage : $cs->search(concept => 'gene', pattern => 'GH1');
lib/Class/DBI/ConceptSearch.pm view on Meta::CPAN
foreach my $source_match (@source_matches){
warn Data::Dumper::Dumper($source_match) if DEBUG;
warn "$t_targetclass->search( $t_targetfield => ".$source_match->$t_sourcefield." );" if DEBUG;
my $v = ref($source_match->$t_sourcefield)
? $source_match->$t_sourcefield->id
: scalar($source_match->$t_sourcefield);
warn $v if DEBUG;
# this call is fragile, handle it with care
#
# it would add power to allow search_like, search_ilike, or fuzzy searches (eg soundex) here
# but requires extension of the xml format and *a lot* more code
my @u = $t_targetclass->search( $t_targetfield => $v );
push @t, @u;
}
@source_matches = @t;
}
push @concept_hits, @source_matches;
( run in 0.723 second using v1.01-cache-2.11-cpan-364913b4093 )