Closed Bug 292718 Opened 17 years ago Closed 16 years ago

LOCATE is not ANSI SQL (prevents user account creation)

Categories

(Bugzilla :: Administration, task, P1)

2.19.2

Tracking

()

RESOLVED FIXED
Bugzilla 2.20

People

(Reporter: osirven, Assigned: mkanat)

References

Details

Attachments

(1 file, 1 obsolete file)

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.7.6) Gecko/20050406 Firefox/1.0.2 (Debian package 1.0.2-3)
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.7.6) Gecko/20050406 Firefox/1.0.2 (Debian package 1.0.2-3)

A query crash the process while creating a new user if the edituser.cgi script.

Reproducible: Always

Steps to Reproduce:
1. Select "add a user" in the administration of bugzilla
2. Fill-in the form and leave "Disable text" field blank
3. Submit the form

Actual Results:  
Bugzilla crashes with following message:

DBD::Pg::st execute failed: ERROR:  function locate("unknown", character
varying) does not exist
HINT:  No function matches the given name and argument types. You may need to
add explicit type casts.
 [for Statement "SELECT eventdata FROM tokens WHERE tokentype = 'emailold'
        AND SUBSTRING(eventdata, 1, (LOCATE(':', eventdata) - 1)) = ?
        OR SUBSTRING(eventdata, (LOCATE(':', eventdata) + 1)) = ?" with
ParamValues: 2='herve@everyfeed.com', 1='herve@everyfeed.com'] at
Bugzilla/User.pm line 1142
	Bugzilla::User::is_available_username('herve@everyfeed.com') called at
/home/httpd/htdocs/bugzilla/editusers.cgi line 175
Blocks: bz-postgres
Hrm, I wonder if that's specific to 8.0, or if LOCATE is not ANSI.
OS: Linux → All
Hardware: PC → All
Version: unspecified → 2.19.2
OK, yeah, we should be using POSITION (or really, sql_position, I think) instead
of LOCATE. That's a pretty easy fix.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: cannot create a user (postgresql query failed) → LOCATE is not ANSI SQL
Target Milestone: --- → Bugzilla 2.20
Assignee: administration → mkanat
Summary: LOCATE is not ANSI SQL → LOCATE is not ANSI SQL (prevents user account creation)
Status: NEW → ASSIGNED
Priority: -- → P1
Attached patch Fix User Account Creation (obsolete) — Splinter Review
OK, there was one other problem, which was that refreshed_when is NOT NULL and
was missing from the INSERT.
Attachment #182830 - Flags: review?(bugreport)
(In reply to comment #3)
> Created an attachment (id=182830) [edit]
> Fix User Account Creation
> 
> OK, there was one other problem, which was that refreshed_when is NOT NULL and
> was missing from the INSERT.

I have tried your patch and it works just fine for me.
Comment on attachment 182830 [details] [diff] [review]
Fix User Account Creation

refreshed_when should not be now() unless you derived groups.
Users should start out in need of refresh.
Attachment #182830 - Flags: review?(bugreport) → review-
Attached patch v2Splinter Review
OK, I changed it to be January, 1901 by default.

In another patch, we should probably give refreshed_when a default value. I
think that would be a cleaner long-term solution. (Something for 2.22.)
Attachment #182830 - Attachment is obsolete: true
Attachment #183786 - Flags: review?(bugreport)
Blocks: 294426
Comment on attachment 183786 [details] [diff] [review]
v2

r=joel if you've tested it
It does seem like there should have been a simpler way to do this in the first
place.
Attachment #183786 - Flags: review?(bugreport) → review+
Yep, I just tested it, and it works. :-)
Flags: approval?
Flags: approval? → approval+
Checking in Bugzilla/User.pm;
/cvsroot/mozilla/webtools/bugzilla/Bugzilla/User.pm,v  <--  User.pm
new revision: 1.55; previous revision: 1.54
done
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
*** Bug 296075 has been marked as a duplicate of this bug. ***
*** Bug 299880 has been marked as a duplicate of this bug. ***
You need to log in before you can comment on or make changes to this bug.