From 0811ac92bf752121208867728aa4629b9eb9c02a Mon Sep 17 00:00:00 2001 From: "mkanat%kerio.com" <> Date: Fri, 8 Jul 2005 09:34:03 +0000 Subject: Bug 292119: [PostgreSQL] POSITION(...) clause "must be type boolean, not type integer" Patch By Max Kanat-Alexander r=dkl, a=justdave --- Bugzilla/Search.pm | 8 ++++---- Bugzilla/User.pm | 12 ++++++------ checksetup.pl | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm index f0bc0b6fe..e69c3232f 100644 --- a/Bugzilla/Search.pm +++ b/Bugzilla/Search.pm @@ -988,10 +988,10 @@ sub init { $term = "$ff != $q"; }, ",casesubstring" => sub { - $term = $dbh->sql_position($q, $ff); + $term = $dbh->sql_position($q, $ff) . " > 0"; }, ",substring" => sub { - $term = $dbh->sql_position(lc($q), "LOWER($ff)"); + $term = $dbh->sql_position(lc($q), "LOWER($ff)") . " > 0"; }, ",substr" => sub { $funcsbykey{",substring"}->(); @@ -1466,7 +1466,7 @@ sub ListIDsForEmail { } elsif ($type eq 'substring') { &::SendSQL("SELECT userid FROM profiles WHERE " . $dbh->sql_position(lc(::SqlQuote($email)), "LOWER(login_name)") . - " " . $dbh->sql_limit(51)); + " > 0 " . $dbh->sql_limit(51)); while (&::MoreSQLData()) { my ($id) = &::FetchSQLData(); push(@list, $id); @@ -1522,7 +1522,7 @@ sub GetByWordListSubstr { foreach my $word (split(/[\s,]+/, $strs)) { if ($word ne "") { push(@list, $dbh->sql_position(lc(::SqlQuote($word)), - "LOWER($field)")); + "LOWER($field)") . " > 0"); } } diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm index 0c2de0f4c..c9817a4d9 100644 --- a/Bugzilla/User.pm +++ b/Bugzilla/User.pm @@ -682,18 +682,18 @@ sub match { && (length($str) >= 3)) { - my $sqlstr = &::SqlQuote(uc($str)); + my $sqlstr = &::SqlQuote(lc($str)); - my $query = "SELECT DISTINCT userid, realname, login_name, " . + my $query = "SELECT DISTINCT userid, realname, login_name, " . "LENGTH(login_name) AS namelength " . "FROM profiles"; if (&::Param('usevisibilitygroups')) { $query .= ", user_group_map"; } - $query .= " WHERE " . $dbh->sql_position($sqlstr, - "UPPER(login_name)") . - " OR " . $dbh->sql_position($sqlstr, - "UPPER(realname)"); + $query .= " WHERE " . + $dbh->sql_position($sqlstr, 'LOWER(login_name)') . " > 0" . + " OR " . + $dbh->sql_position($sqlstr, 'LOWER(realname)') . " > 0"; if (&::Param('usevisibilitygroups')) { $query .= " AND user_group_map.user_id = userid" . " AND isbless = 0" . diff --git a/checksetup.pl b/checksetup.pl index 42582fa65..176ad463c 100755 --- a/checksetup.pl +++ b/checksetup.pl @@ -3687,8 +3687,8 @@ if ($dbh->isa('Bugzilla::DB::Mysql') print "Removing paths from filenames in attachments table...\n"; $sth = $dbh->prepare("SELECT attach_id, filename FROM attachments " . - "WHERE " . $dbh->sql_position(q{'/'}, 'filename') . - " OR " . $dbh->sql_position(q{'\\\\'}, 'filename')); + "WHERE " . $dbh->sql_position(q{'/'}, 'filename') . " > 0 OR " . + $dbh->sql_position(q{'\\\\'}, 'filename') . " > 0"); $sth->execute; while (my ($attach_id, $filename) = $sth->fetchrow_array) { -- cgit v1.2.3-24-g4f1b