Adapt literal sql to older versions of DBIx::Class

the previous version failed on the debian version (0.08196)
agranig/1_0_subfix
Gerhard Jungwirth 12 years ago committed by Andrew Pogrebennyk
parent 4f73672fb8
commit ec474b00f2

@ -20,7 +20,7 @@ sub process {
my @parts = split /\./, $c->{name};
if($c->{literal_sql}) {
$rs = $rs->search_rs(undef, {
'+select' => [ $c->{literal_sql} ],
'+select' => [ \[$c->{literal_sql}] ],
'+as' => [ $c->{accessor} ],
});
} elsif(@parts == 2) {
@ -42,15 +42,17 @@ sub process {
# generic searching
my @searchColumns = ();
my $searchString = $c->request->params->{sSearch} // "";
foreach my $col(@{ $cols }) {
# avoid amigious column names if we have the same column in different joined tables
my $name = _get_joined_column_name($col->{name});
$name = $col->{literal_sql} if $col->{literal_sql};
push @searchColumns, $name if $col->{search};
my $stmt = { $name => { like => '%'.$searchString.'%' } };
$stmt = \[$col->{literal_sql} . " LIKE ?", '%'.$searchString.'%']
if $col->{literal_sql};
push @searchColumns, $stmt if $col->{search};
}
my $searchString = $c->request->params->{sSearch} // "";
if($searchString) {
$rs = $rs->search([ map{ +{ $_ => { like => '%'.$searchString.'%' } } } @searchColumns ]);
$rs = $rs->search([@searchColumns]);
}
# data-range searching

Loading…
Cancel
Save