summaryrefslogtreecommitdiff
path: root/FS/FS/Record.pm
diff options
context:
space:
mode:
Diffstat (limited to 'FS/FS/Record.pm')
-rw-r--r--FS/FS/Record.pm22
1 files changed, 14 insertions, 8 deletions
diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm
index a23f37a62..ebcbbb497 100644
--- a/FS/FS/Record.pm
+++ b/FS/FS/Record.pm
@@ -208,34 +208,40 @@ sub qsearch {
$statement .= ' WHERE '. join(' AND ', map {
my $op = '=';
+ my $column = $_;
if ( ref($record->{$_}) ) {
$op = $record->{$_}{'op'} if $record->{$_}{'op'};
- $op = 'LIKE' if $op =~ /^ILIKE$/i && driver_name ne 'Pg';
+ #$op = 'LIKE' if $op =~ /^ILIKE$/i && driver_name ne 'Pg';
+ if ( uc($op) eq 'ILIKE' ) {
+ $op = 'LIKE';
+ $record->{$_}{'value'} = lc($record->{$_}{'value'});
+ $column = "LOWER($_)";
+ }
$record->{$_} = $record->{$_}{'value'}
}
if ( ! defined( $record->{$_} ) || $record->{$_} eq '' ) {
if ( $op eq '=' ) {
if ( driver_name eq 'Pg' ) {
- qq-( $_ IS NULL OR $_ = '' )-;
+ qq-( $column IS NULL OR $column = '' )-;
} else {
- qq-( $_ IS NULL OR $_ = "" )-;
+ qq-( $column IS NULL OR $column = "" )-;
}
} elsif ( $op eq '!=' ) {
if ( driver_name eq 'Pg' ) {
- qq-( $_ IS NOT NULL AND $_ != '' )-;
+ qq-( $column IS NOT NULL AND $column != '' )-;
} else {
- qq-( $_ IS NOT NULL AND $_ != "" )-;
+ qq-( $column IS NOT NULL AND $column != "" )-;
}
} else {
if ( driver_name eq 'Pg' ) {
- qq-( $_ $op '' )-;
+ qq-( $column $op '' )-;
} else {
- qq-( $_ $op "" )-;
+ qq-( $column $op "" )-;
}
}
} else {
- "$_ $op ?";
+ "$column $op ?";
}
} @fields );
}