Closed
Bug 292119
Opened 20 years ago
Closed 19 years ago
[PostgreSQL] POSITION(...) clause "must be type boolean, not type integer"
Categories
(Bugzilla :: Bugzilla-General, defect, P1)
Tracking
()
RESOLVED
FIXED
Bugzilla 2.20
People
(Reporter: afranke, Assigned: mkanat)
References
()
Details
Attachments
(1 file)
(deleted),
patch
|
dkl
:
review+
|
Details | Diff | Splinter Review |
If I enter anything (e.g.: foo) in the Quicksearch box on
http://landfill.bugzilla.org/bugzilla-tip-pg/
and submit the query, then Bugzilla will die with a
Software error:
DBD::Pg::st execute failed: ERROR: Argument of WHERE must be type boolean, not
type integer [for Statement "SELECT products.id FROM products WHERE
POSITION('foo' IN LOWER(products.name))"] at Bugzilla/DB.pm line 80
Bugzilla::DB::SendSQL('SELECT products.id FROM products WHERE POSITION(\'foo\'
IN LO...') called at Bugzilla/Search.pm line 1487
Bugzilla::Search::build_subselect('bugs.product_id','products.id','products','POSITION(\'foo\'
IN LOWER(products.name))') called at Bugzilla/Search.pm line 865
Bugzilla::Search::__ANON__ called at Bugzilla/Search.pm line 1269
Bugzilla::Search::init('Bugzilla::Search=HASH(0xa329890)') called at
Bugzilla/Search.pm line 85
Bugzilla::Search::new('Bugzilla::Search','fields','ARRAY(0xa04e6d4)','params','Bugzilla::CGI=HASH(0xa2ff730)','order','ARRAY(0xa057504)')
called at /var/www/html/bugzilla-tip-pg/buglist.cgi line 763
Comment 1•20 years ago
|
||
The fix for this is part of the patch at bug 285695. Try it again with that
patch applied...
Assignee | ||
Updated•20 years ago
|
Assignee | ||
Updated•19 years ago
|
Assignee: general → mkanat
Summary: PgSQL: Quicksearch dies: POSITION(...) clause "must be type boolean, not type integer" → [PostgreSQL] Quicksearch dies: POSITION(...) clause "must be type boolean, not type integer"
Whiteboard: [blocker will fix?]
Version: unspecified → 2.19.2
Assignee | ||
Comment 2•19 years ago
|
||
I've removed the code that will fix this from bug 285695, and am going to put it
in this bug, instead.
Summary: [PostgreSQL] Quicksearch dies: POSITION(...) clause "must be type boolean, not type integer" → [PostgreSQL] POSITION(...) clause "must be type boolean, not type integer"
Whiteboard: [blocker will fix?]
Assignee | ||
Updated•19 years ago
|
Status: NEW → ASSIGNED
Priority: -- → P1
Assignee | ||
Comment 3•19 years ago
|
||
OK, I've asked LpSolit for too many reviews, so this one's for Joel. :-) (If
you have the time, Joel.)
Basically, we just need to make sure that the POSITION clause has some boolean
comparison operator when it's used in a boolean fashion. So that's what we do.
Attachment #188074 -
Flags: review?(bugreport)
Assignee | ||
Comment 4•19 years ago
|
||
Comment on attachment 188074 [details] [diff] [review]
v1
Hey, dkl, here's another one, if you've got a bit. I'd imagine you've probably
also run into this one if you've been using 2.19.3.
Attachment #188074 -
Flags: review?(bugreport) → review?(dkl)
Comment 5•19 years ago
|
||
Comment on attachment 188074 [details] [diff] [review]
v1
Patch looks sane, applies cleanly and fixes the problem during my testing.
r=dkl
Attachment #188074 -
Flags: review?(dkl) → review+
Assignee | ||
Updated•19 years ago
|
Flags: approval?
Updated•19 years ago
|
Flags: approval? → approval+
Assignee | ||
Comment 6•19 years ago
|
||
Checking in checksetup.pl;
/cvsroot/mozilla/webtools/bugzilla/checksetup.pl,v <-- checksetup.pl
new revision: 1.411; previous revision: 1.410
done
Checking in Bugzilla/Search.pm;
/cvsroot/mozilla/webtools/bugzilla/Bugzilla/Search.pm,v <-- Search.pm
new revision: 1.98; previous revision: 1.97
done
Checking in Bugzilla/User.pm;
/cvsroot/mozilla/webtools/bugzilla/Bugzilla/User.pm,v <-- User.pm
new revision: 1.60; previous revision: 1.59
done
Status: ASSIGNED → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Comment 7•19 years ago
|
||
Did you prepend " > 0" to every place that calls sql_position()?
If so, why didn't you add the " > 0" within the method itself? The code would have read a lot better that
way.
Assignee | ||
Comment 8•19 years ago
|
||
(In reply to comment #7)
> If so, why didn't you add the " > 0" within the method itself? The code would
> have read a lot better that way.
Because we don't always use sql_position as a boolean condition. So the answer
to the first question there is actually "no."
You need to log in
before you can comment on or make changes to this bug.
Description
•