r4893 Address the foreign key issue with AttributeValue table (no bug ID,
authorDenis Ovsienko <infrastation@yandex.ru>
Tue, 3 Jan 2012 17:37:37 +0000 (17:37 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Tue, 3 Jan 2012 17:37:37 +0000 (17:37 +0000)
commit7d68a0fbd77148894f84d1e0f4abbcfac5d10d33
tree2b1c1474655dfb7f050c19d04d09d321e06a0653
parentd7e9e25b570ff86b686437fc5a7d482f988013d8
r4893 Address the foreign key issue with AttributeValue table (no bug ID,
issue discussed on the mailing list). MySQL documentation explains:

"The handling of foreign key references to nonunique keys or keys that
contain NULL values is not well defined for operations such as UPDATE
or DELETE CASCADE. You are advised to use foreign keys that reference
only UNIQUE and NOT NULL keys."

In particular, AttributeValue.attr_id referencing AttributeMap.attr_id
was wrong in this regard (rev 4674, release 0.19.7). Referencing the
unique (type_id, attr_id) tuple is the right solution, although this
requires a copy of object type ID in the AttributeValue table. This
commit implements the required changes.
ChangeLog
wwwroot/inc/database.php
wwwroot/inc/install.php
wwwroot/inc/upgrade.php