summaryrefslogtreecommitdiff
path: root/FS/FS/Record.pm
diff options
context:
space:
mode:
authorivan <ivan>2002-10-13 01:14:34 +0000
committerivan <ivan>2002-10-13 01:14:34 +0000
commit80b9d734807f0358403c47dfa3d86fb80f75cdd0 (patch)
tree52b0af74fef4e2063336c910ac96967dc1cc1d43 /FS/FS/Record.pm
parentec8b028d52fea91a4f970c0be377eaccde682997 (diff)
change ILIKE into LOWER() for compatibility with non-Pg and Pg before 7.1
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 );
}