Closed Bug 292718 Opened 17 years ago Closed 16 years ago
LOCATE is not ANSI SQL (prevents user account creation)
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: email@example.com', firstname.lastname@example.org'] at Bugzilla/User.pm line 1142 Bugzilla::User::is_available_username('email@example.com') called at /home/httpd/htdocs/bugzilla/editusers.cgi line 175
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
Summary: LOCATE is not ANSI SQL → LOCATE is not ANSI SQL (prevents user account creation)
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)  > 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-
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.)
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. :-)
16 years ago
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.