MT#56817 MT#56362 fix query param sorting for regulary chained rs

Change-Id: I82d3a0ce67ffb61273fc716016885f6431852eff
(cherry picked from commit c837dc1043)
mr11.5
Rene Krenn 1 year ago
parent badb90c1eb
commit e0dee320aa

@ -1114,7 +1114,7 @@ sub apply_query_params {
$item_rs = $param->{new_rs}($c,$q,$item_rs);
} elsif (defined $param->{query} || defined $param->{query_type}) {
#regular chaining:
my($sub_where,$sub_attributes) = $self->get_query_callbacks($p);
my($sub_where,$sub_attributes) = $self->get_query_callbacks($param);
$item_rs = $item_rs->search($sub_where->($q,$c), $sub_attributes->($q,$c));
}
}
@ -1159,22 +1159,22 @@ sub get_query_callbacks {
my ($self, $param) = @_;
my($sub_where,$sub_attributes);
if ($param->{query_type}){
my $param = $param->{param};
if ($param !~ /\./) {
$param = 'me.' . $param;
my $p = $param->{param};
if ($p !~ /\./) {
$p = 'me.' . $p;
}
if ('string_like' eq $param->{query_type}) {
$sub_where = sub {my ($q, $c) = @_; $q =~ s/\*/\%/g; { $param => { like => $q } }; };
$sub_where = sub {my ($q, $c) = @_; $q =~ s/\*/\%/g; { $p => { like => $q } }; };
} elsif ('string_eq' eq $param->{query_type}) {
$sub_where = sub {my ($q, $c) = @_; { $param => $q };};
$sub_where = sub {my ($q, $c) = @_; { $p => $q };};
} elsif ('wildcard' eq $param->{query_type}) {
$sub_where = sub {my ($q, $c) = @_; { wildcard_search(
search_string => $q,
search => 1,
exact_search => 0,
int_search => 0,
col_name => $param,
col_name => $p,
) };};
} elsif ('wildcard_optional' eq $param->{query_type}) {
$sub_where = sub {my ($q, $c) = @_; { wildcard_search(
@ -1182,7 +1182,7 @@ sub get_query_callbacks {
search => 1,
exact_search => check_wildcard_search($c->req->params),
int_search => 0,
col_name => $param,
col_name => $p,
) };};
}

Loading…
Cancel
Save