projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
cd7e557
)
fix inexact lookup of tickets by customer + id, #39536, from #13852
author
Mark Wells
<mark@freeside.biz>
Thu, 7 Apr 2016 19:55:11 +0000
(12:55 -0700)
committer
Mark Wells
<mark@freeside.biz>
Thu, 7 Apr 2016 19:55:19 +0000
(12:55 -0700)
rt/lib/RT/Tickets.pm
patch
|
blob
|
history
diff --git
a/rt/lib/RT/Tickets.pm
b/rt/lib/RT/Tickets.pm
index
c826b6f
..
af6b6ed
100755
(executable)
--- a/
rt/lib/RT/Tickets.pm
+++ b/
rt/lib/RT/Tickets.pm
@@
-2277,7
+2277,7
@@
sub _FreesideFieldLimit {
# if it's compound, create a join from cust_main or cust_svc to that
# table, using custnum or svcnum, and Limit on that table instead.
# if it's compound, create a join from cust_main or cust_svc to that
# table, using custnum or svcnum, and Limit on that table instead.
- my @
_SQL
Limit = ();
+ my @Limit = ();
foreach my $a (@alias) {
if ( $table2 ) {
$a = $self->Join(
foreach my $a (@alias) {
if ( $table2 ) {
$a = $self->Join(
@@
-2307,8
+2307,12
@@
sub _FreesideFieldLimit {
# will produce a subclause: "cust_main_1.custnum IS NOT NULL OR
# cust_main_2.custnum IS NOT NULL" (or "IS NULL AND..." for a negative
# query).
# will produce a subclause: "cust_main_1.custnum IS NOT NULL OR
# cust_main_2.custnum IS NOT NULL" (or "IS NULL AND..." for a negative
# query).
- #$self->_SQLLimit(
- push @_SQLLimit, {
+ # This requires the ENTRYAGGREGATOR to be OR for positive queries
+ # (where a matching customer exists), but ONLY between these two
+ # constraints and NOT with anything else in the query, hence the
+ # subclause.
+
+ push @Limit, {
%rest,
ALIAS => $a,
FIELD => $pkey,
%rest,
ALIAS => $a,
FIELD => $pkey,
@@
-2320,11
+2324,10
@@
sub _FreesideFieldLimit {
};
}
};
}
- $self->_OpenParen;
- foreach my $_SQLLimit (@_SQLLimit) {
- $self->
_SQLLimit( %$_SQLLimit
);
+ foreach (@Limit) {
+ # _SQLLimit would force SUBCLAUSE to 'ticketsql'; bypass it
+ $self->
SUPER::Limit( %$_
);
}
}
- $self->_CloseParen;
}
}