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

Loading…
Cancel
Save