Closed
Bug 1196092
Opened 9 years ago
Closed 9 years ago
Switch logincookies primary key to auto_incremented id, make cookie a secondary UNIQUE key
Categories
(bugzilla.mozilla.org :: General, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: dylan, Assigned: dylan)
References
Details
Attachments
(1 file, 1 obsolete file)
2.14 KB,
patch
|
glob
:
review+
|
Details | Diff | Splinter Review |
This is a required change for bug 1192687, as natural primary keys (such as "cookie") are very difficult to work with, especially when they are secrets.
Assignee | ||
Comment 1•9 years ago
|
||
This was remarkably hard to get right. bz_column_info_real() is used because bz_column_info() returns our fake, shadow schema...
Attachment #8650840 -
Flags: review?(glob)
Comment on attachment 8650840 [details] [diff] [review] 1196092_5.patch Review of attachment 8650840 [details] [diff] [review]: ----------------------------------------------------------------- Updating column cookie in table logincookies ... Old: varchar(22) PRIMARY KEY NOT NULL New: varchar(22) NOT NULL DBD::mysql::db do failed: Can't DROP 'PRIMARY'; check that column/key exists [for Statement "ALTER TABLE logincookies DROP PRIMARY KEY"] at Bugzilla/DB.pm line 760.
Attachment #8650840 -
Flags: review?(glob) → review-
Assignee | ||
Comment 3•9 years ago
|
||
It would appear I underestimated our DB schema layer. It can actually drop the primary key itself.
Attachment #8650840 -
Attachment is obsolete: true
Attachment #8651196 -
Flags: review?(glob)
Comment on attachment 8651196 [details] [diff] [review] 1196092_6.patch Review of attachment 8651196 [details] [diff] [review]: ----------------------------------------------------------------- this generates the same sql, which fails: Updating column cookie in table logincookies ... Old: varchar(22) PRIMARY KEY NOT NULL New: varchar(22) NOT NULL DBD::mysql::db do failed: Can't DROP 'PRIMARY'; check that column/key exists [for Statement "ALTER TABLE logincookies DROP PRIMARY KEY"] at Bugzilla/DB.pm line 760.
Attachment #8651196 -
Flags: review?(glob) → review-
Comment on attachment 8651196 [details] [diff] [review] 1196092_6.patch Review of attachment 8651196 [details] [diff] [review]: ----------------------------------------------------------------- ah, my bad. for reasons that are unknown logincookies.cookie isn't a PK in the db i'm using, and a mysql quirk had it reporting it incorrectly ("A UNIQUE index may be displayed as PRI if it cannot contain NULL values and there is no PRIMARY KEY in the table"). r=glob ::: Bugzilla/Install/DB.pm @@ +738,4 @@ > $dbh->bz_alter_column('logincookies', 'cookie', > + {TYPE => 'varchar(22)', NOTNULL => 1}); > + $dbh->bz_add_index('logincookies', 'logincookies_cookie_idx', > + {TYPE => 'UNIQUE', FIELDS => ['cookie']}); nit: this line and the previous {TYPE should line up with the '
Attachment #8651196 -
Flags: review- → review+
To ssh://gitolite3@git.mozilla.org/webtools/bmo/bugzilla.git 0b05719..57f911c master -> master
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•