[Rt-commit] rt branch, 3.8-trunk, updated. rt-3.8.7-130-gbe4e9d9
Ruslan Zakirov
ruz at bestpractical.com
Wed Feb 3 06:30:36 EST 2010
The branch, 3.8-trunk has been updated
via be4e9d9f5a360a95c87fcbc5c8f8371e5fe50e70 (commit)
from 1d5931a647329d24301774dde8a5595d5825b9bf (commit)
Summary of changes:
lib/RT/Tickets_Overlay.pm | 38 +++++++++++++++++++++++++++++++++++++-
1 files changed, 37 insertions(+), 1 deletions(-)
- Log -----------------------------------------------------------------
commit be4e9d9f5a360a95c87fcbc5c8f8371e5fe50e70
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date: Wed Feb 3 14:29:36 2010 +0300
return back effective SQL when searching by CFs using = or != operator
diff --git a/lib/RT/Tickets_Overlay.pm b/lib/RT/Tickets_Overlay.pm
index 26dafd7..b53a6e2 100755
--- a/lib/RT/Tickets_Overlay.pm
+++ b/lib/RT/Tickets_Overlay.pm
@@ -1370,7 +1370,8 @@ sub _CustomFieldLimit {
# we explicitly don't include the "IS NULL" case, since we would
# otherwise end up with a redundant clause.
- my ($negative_op, $null_op, $inv_op, $range_op) = $self->ClassifySQLOperation( $op );
+ my ($negative_op, $null_op, $inv_op, $range_op)
+ = $self->ClassifySQLOperation( $op );
my $fix_op = sub {
my $op = shift;
@@ -1427,6 +1428,41 @@ sub _CustomFieldLimit {
%rest
);
}
+ elsif ( $op eq '=' || $op eq '!=' || $op eq '<>' ) {
+ unless ( length( Encode::encode_utf8($value) ) > 255 ) {
+ $self->_SQLLimit(
+ ALIAS => $TicketCFs,
+ FIELD => 'Content',
+ OPERATOR => $op,
+ VALUE => $value,
+ %rest
+ );
+ } else {
+ $self->_OpenParen;
+ $self->_SQLLimit(
+ ALIAS => $TicketCFs,
+ FIELD => 'Content',
+ OPERATOR => '=',
+ VALUE => '',
+ ENTRYAGGREGATOR => 'OR'
+ );
+ $self->_SQLLimit(
+ ALIAS => $TicketCFs,
+ FIELD => 'Content',
+ OPERATOR => 'IS',
+ VALUE => 'NULL',
+ ENTRYAGGREGATOR => 'OR'
+ );
+ $self->_CloseParen;
+ $self->_SQLLimit(
+ ALIAS => $TicketCFs,
+ FIELD => 'LargeContent',
+ OPERATOR => $fix_op->($op),
+ VALUE => $value,
+ ENTRYAGGREGATOR => 'AND',
+ );
+ }
+ }
else {
$self->_SQLLimit(
ALIAS => $TicketCFs,
-----------------------------------------------------------------------
More information about the Rt-commit
mailing list