Closed
Bug 97748
Opened 24 years ago
Closed 24 years ago
schema for "versions" table does not enforce uniqueness
Categories
(Bugzilla :: Bugzilla-General, defect)
Tracking
()
People
(Reporter: jlawson-mozbug, Assigned: justdave)
Details
The schema for the "versions" table within checksetup.pl is:
$table{versions} =
'value tinytext,
program varchar(64) not null';
However, it should realistically be changed to the following, so that
the "versions.value" column matches the definition of the "bugs.version"
column, and that a primary key enforcing uniqueness against the two column
combinations.
$table{versions} =
'value varchar(16) not null,
program varchar(64) not null,
PRIMARY KEY (program,value)';
Without the primary key to enforce uniqueness, it's possible to use the
editversions.cgi to add duplicated versions. Additionally, as long as the
definition for the "versions.value" column does not match what "bugs.version"
actually allows, it will be possible for the admin to create a version that is
longer than what the "bugs" table will accomodate, breaking referential
integrity.
While the schema is being fixed, why not rename "versions.program"
to "versions.product", and rename "versions.value" to "versions.version". That
would improve consistency with the naming of the corresponding columns in
the "bugs" table.
| Reporter | ||
Comment 1•24 years ago
|
||
Actually, it looks like bugs.version was recently (2001-06-15) upgraded from
varchar(16) to varchar(64), according to Bug 9352. So the corrected schema for
the "versions" table should still be changed, but to the following:
$table{versions} =
'value varchar(64) not null,
program varchar(64) not null,
PRIMARY KEY (program,value)';
| Reporter | ||
Comment 2•24 years ago
|
||
fyi, although it is true that editversions.cgi attempts to check whether the
version you are attempting to add already exists before it tries to, that is
hardly an atomic or necessarily robust action when the criteria can be easily
enforced by the database.
| Assignee | ||
Comment 3•24 years ago
|
||
Uniqueness on the versions table is covered on bug 7233.
Changing the tables to use key number references instead of full names is on
bug 43600.
*** This bug has been marked as a duplicate of 7233 ***
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → DUPLICATE
Updated•13 years ago
|
QA Contact: matty_is_a_geek → default-qa
You need to log in
before you can comment on or make changes to this bug.
Description
•