--- loginticket.install 2007-11-08 12:08:28.000000000 +0800 +++ loginticket.install 2009-03-22 18:46:54.000000000 +0800 @@ -18,22 +18,26 @@ function loginticket_install() { case 'mysql': case 'mysqli': db_query("CREATE TABLE {loginticket} ( + tid int unsigned NOT NULL AUTO_INCREMENT, passcode_md5 char(32) NOT NULL, purpose varchar(32) NOT NULL default '', expires int NOT NULL default '0', uid int unsigned NOT NULL default '0', - PRIMARY KEY (passcode_md5), + PRIMARY KEY (tid), + UNIQUE KEY (passcode_md5), KEY uid (uid) ) /*!40100 DEFAULT CHARACTER SET UTF8 */ "); break; case 'pgsql': db_query("CREATE TABLE {loginticket} ( + tid int unsigned NOT NULL AUTO_INCREMENT, passcode_md5 char(32) NOT NULL, purpose varchar(32) NOT NULL default '', expires int NOT NULL default '0', uid int NOT NULL default '0', - PRIMARY KEY (passcode_md5) + PRIMARY KEY (tid), + UNIQUE (passcode_md5) )"); db_query("CREATE INDEX {loginticket}_uid_idx ON {loginticket} (uid)"); break; @@ -56,13 +60,15 @@ function loginticket_uninstall() { /** - * Implementation of hook_update_1(). - * Original Release. + * Implementation of hook_update_2(). + * Add tid as primary key, and use passcode_md5 as unique key. (Issue #229797) */ -function loginticket_update_1() { +function loginticket_update_2() { $items = array(); // Examples ONLY // $items[] = update_sql("ALTER TABLE {loginticket} ADD new_column text"); // $items[] = update_sql("ALTER TABLE {loginticket} DROP old_column"); + $items[] = update_sql("ALTER TABLE {loginticket} DROP PRIMARY KEY , ADD UNIQUE (passcode_md5)"); + $items[] = update_sql("ALTER TABLE {loginticket} ADD tid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST"); return $items; }