Skip to content

Commit

Permalink
MySQL - a bug while adding primary keys was fixed. Added some new pri…
Browse files Browse the repository at this point in the history
…mary keys.
  • Loading branch information
vzrus committed Apr 13, 2012
1 parent 3c350e9 commit aac9c92
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 5 deletions.
4 changes: 2 additions & 2 deletions mysql/YetAnotherForum.NET/install/mysql/indexes.sql
Expand Up @@ -72,14 +72,14 @@ IF (SELECT COUNT(1) FROM INFORMATION_SCHEMA.STATISTICS S WHERE S.TABLE_SCHEMA='{
ALTER TABLE {databaseName}.{objectQualifier}Thanks ALTER TABLE {databaseName}.{objectQualifier}Thanks
ADD UNIQUE INDEX `IX_{databaseName}_{objectQualifier}Thanks_UserID` (`ThanksFromUserID`, `ThanksToUserID`); ADD UNIQUE INDEX `IX_{databaseName}_{objectQualifier}Thanks_UserID` (`ThanksFromUserID`, `ThanksToUserID`);
END IF; */ END IF;
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS S WHERE S.TABLE_SCHEMA='{databaseName}' AND S.INDEX_NAME='IX_{databaseName}_{objectQualifier}ActiveAccess_UserID_Forum' AND S.TABLE_NAME=LOWER('{objectQualifier}ActiveAccess') AND (S.COLUMN_NAME='UserID' OR S.COLUMN_NAME='ForumID') LIMIT 1) THEN IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS S WHERE S.TABLE_SCHEMA='{databaseName}' AND S.INDEX_NAME='IX_{databaseName}_{objectQualifier}ActiveAccess_UserID_Forum' AND S.TABLE_NAME=LOWER('{objectQualifier}ActiveAccess') AND (S.COLUMN_NAME='UserID' OR S.COLUMN_NAME='ForumID') LIMIT 1) THEN
ALTER TABLE {databaseName}.{objectQualifier}ActiveAccess ALTER TABLE {databaseName}.{objectQualifier}ActiveAccess
ADD UNIQUE INDEX `IX_{databaseName}_{objectQualifier}ActiveAccess_UserID_Forum` (`UserID`,`ForumID`); ADD UNIQUE INDEX `IX_{databaseName}_{objectQualifier}ActiveAccess_UserID_Forum` (`UserID`,`ForumID`);
END IF; END IF;*/


IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS S WHERE S.TABLE_SCHEMA='{databaseName}' AND S.INDEX_NAME='IX_{databaseName}_{objectQualifier}MessageHistory_Edited_MessageID' AND S.TABLE_NAME=LOWER('{objectQualifier}MessageHistory') AND (S.COLUMN_NAME='Edited' OR S.COLUMN_NAME='MessageID') LIMIT 1) THEN IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS S WHERE S.TABLE_SCHEMA='{databaseName}' AND S.INDEX_NAME='IX_{databaseName}_{objectQualifier}MessageHistory_Edited_MessageID' AND S.TABLE_NAME=LOWER('{objectQualifier}MessageHistory') AND (S.COLUMN_NAME='Edited' OR S.COLUMN_NAME='MessageID') LIMIT 1) THEN


Expand Down
23 changes: 20 additions & 3 deletions mysql/YetAnotherForum.NET/install/mysql/pkeys.sql
Expand Up @@ -22,14 +22,14 @@ AND T.CONSTRAINT_NAME = 'PRIMARY') THEN


set @pk_t_name = pk_t_name ; set @pk_t_name = pk_t_name ;
set @pk_c_name = pk_c_name ; set @pk_c_name = pk_c_name ;

set @pk_c2_name = pk_c2_name ;


if pk_c2_name is null then if pk_c2_name is null then
set @fk_create_string = concat('ALTER TABLE {databaseName}.{objectQualifier}', set @fk_create_string = concat('ALTER TABLE {databaseName}.{objectQualifier}',
@pk_t_name,' ADD PRIMARY KEY (`',@pk_c_name,'`);'); @pk_t_name,' ADD PRIMARY KEY (`',@pk_c_name,'`);');
else else
set @fk_create_string = concat('ALTER TABLE {databaseName}.{objectQualifier}', set @fk_create_string = concat('ALTER TABLE {databaseName}.{objectQualifier}',
@pk_t_name,' ADD PRIMARY KEY (`',@pk_c_name,'`,`',@pk_c_name,'`);'); @pk_t_name,' ADD PRIMARY KEY (`',@pk_c_name,'`,`',@pk_c2_name,'`);');
end if; end if;


prepare fk_check_statement from @fk_create_string ; prepare fk_check_statement from @fk_create_string ;
Expand Down Expand Up @@ -138,7 +138,24 @@ CALL {databaseName}.{objectQualifier}add_or_check_pkeys('WatchForum','INT NOT N
CALL {databaseName}.{objectQualifier}add_or_check_pkeys('WatchTopic','INT NOT NULL AUTO_INCREMENT','WatchTopicID', null); CALL {databaseName}.{objectQualifier}add_or_check_pkeys('WatchTopic','INT NOT NULL AUTO_INCREMENT','WatchTopicID', null);
--GO --GO



CALL {databaseName}.{objectQualifier}add_or_check_pkeys('ActiveAccess',null,'UserID', 'ForumID');
--GO
CALL {databaseName}.{objectQualifier}add_or_check_pkeys('UserProfile',null,'UserID', 'ApplicationName');
--GO
CALL {databaseName}.{objectQualifier}add_or_check_pkeys('ForumReadTracking',null,'UserID', 'ForumID');
--GO
CALL {databaseName}.{objectQualifier}add_or_check_pkeys('TopicReadTracking',null,'UserID', 'TopicID');
--GO
CALL {databaseName}.{objectQualifier}add_or_check_pkeys('GroupMedal',null,'MedalID', 'GroupID');
--GO
CALL {databaseName}.{objectQualifier}add_or_check_pkeys('UserMedal',null,'MedalID', 'UserID');
--GO
CALL {databaseName}.{objectQualifier}add_or_check_pkeys('MessageHistory',null,'MessageID', 'Edited');
--GO
CALL {databaseName}.{objectQualifier}add_or_check_pkeys('MessageReported',null,'MessageID',null);
--GO
CALL {databaseName}.{objectQualifier}add_or_check_pkeys('MessageReportedAudit',null,'LogID',null);
--GO


DROP PROCEDURE IF EXISTS {databaseName}.{objectQualifier}add_or_check_pkeys; DROP PROCEDURE IF EXISTS {databaseName}.{objectQualifier}add_or_check_pkeys;
--GO --GO
1 change: 1 addition & 0 deletions mysql/YetAnotherForum.NET/install/mysql/procedures.sql
Expand Up @@ -12959,6 +12959,7 @@ begin
usr.UserId, usr.UserId,
usr.Name AS UserName, usr.Name AS UserName,
usr.DisplayName AS UserDisplayName, usr.DisplayName AS UserDisplayName,
usr.LastVisit,
0 as IsCrawler, 0 as IsCrawler,
1 as UserCount, 1 as UserCount,
-- IsActiveExcluded -- IsActiveExcluded
Expand Down
27 changes: 27 additions & 0 deletions mysql/YetAnotherForum.NET/install/mysql/tables.sql
Expand Up @@ -1489,6 +1489,33 @@ IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
ALTER TABLE {databaseName}.{objectQualifier}ForumReadtracking DROP PRIMARY KEY; ALTER TABLE {databaseName}.{objectQualifier}ForumReadtracking DROP PRIMARY KEY;
ALTER TABLE {databaseName}.{objectQualifier}ForumReadtracking DROP `TrackingID`; ALTER TABLE {databaseName}.{objectQualifier}ForumReadtracking DROP `TrackingID`;
END IF; END IF;
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS S WHERE S.TABLE_SCHEMA='{databaseName}' AND S.INDEX_NAME='IX_{databaseName}_{objectQualifier}ActiveAccess_UserID_Forum' AND S.TABLE_NAME=LOWER('{objectQualifier}ActiveAccess') AND (S.COLUMN_NAME='UserID' OR S.COLUMN_NAME='ForumID') LIMIT 1) THEN

ALTER TABLE {databaseName}.{objectQualifier}ActiveAccess
DROP INDEX `IX_{databaseName}_{objectQualifier}ActiveAccess_UserID_Forum`;

END IF;

IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
WHERE LOWER(TABLE_SCHEMA)=LOWER('{databaseName}') AND
LOWER(TABLE_NAME)=LOWER('{objectQualifier}MessageReportedAudit')
AND COLUMN_NAME='MessageID' AND IS_NULLABLE='YES' LIMIT 1) THEN
ALTER TABLE {databaseName}.{objectQualifier}MessageReportedAudit CHANGE `MessageID` `MessageID` INT NOT NULL;
END IF;

IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
WHERE LOWER(TABLE_SCHEMA)=LOWER('{databaseName}') AND
LOWER(TABLE_NAME)=LOWER('{objectQualifier}MessageReportedAudit')
AND COLUMN_NAME='UserID' AND IS_NULLABLE='YES' LIMIT 1) THEN
ALTER TABLE {databaseName}.{objectQualifier}MessageReportedAudit CHANGE `UserID` `UserID` INT NOT NULL;
END IF;

IF EXISTS (SELECT 1 FROM information_schema.COLUMNS
WHERE LOWER(TABLE_SCHEMA)=LOWER('{databaseName}') AND
LOWER(TABLE_NAME)=LOWER('{objectQualifier}MessageReportedAudit')
AND COLUMN_NAME='Reported' AND IS_NULLABLE='YES' LIMIT 1) THEN
ALTER TABLE {databaseName}.{objectQualifier}MessageReportedAudit CHANGE `Reported` `Reported` DATETIME NOT NULL;
END IF;
END; END;
--GO --GO


Expand Down

0 comments on commit aac9c92

Please sign in to comment.