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

Loading…
Cancel
Save