query("ALTER TABLE ``bans`` ADD INDEX `seen` (`seen`)") or error(db_error()); case 'v0.9.6-dev-17': query("ALTER TABLE ``ip_notes``\n\t\t\t\tDROP INDEX `ip`,\n\t\t\t\tADD INDEX `ip_lookup` (`ip`, `time`)") or error(db_error()); case 'v0.9.6-dev-18': query("CREATE TABLE IF NOT EXISTS ``flood`` (\n\t\t\t\t `id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n\t\t\t\t `ip` varchar(39) NOT NULL,\n\t\t\t\t `board` varchar(58) CHARACTER SET utf8 NOT NULL,\n\t\t\t\t `time` int(11) NOT NULL,\n\t\t\t\t `posthash` char(32) NOT NULL,\n\t\t\t\t `filehash` char(32) DEFAULT NULL,\n\t\t\t\t `isreply` tinyint(1) NOT NULL,\n\t\t\t\t PRIMARY KEY (`id`),\n\t\t\t\t KEY `ip` (`ip`),\n\t\t\t\t KEY `posthash` (`posthash`),\n\t\t\t\t KEY `filehash` (`filehash`),\n\t\t\t\t KEY `time` (`time`)\n\t\t\t\t) ENGINE=MyISAM DEFAULT CHARSET=ascii COLLATE=ascii_bin AUTO_INCREMENT=1 ;") or error(db_error()); case 'v0.9.6-dev-19': query("UPDATE ``mods`` SET `type` = 10 WHERE `type` = 0") or error(db_error()); query("UPDATE ``mods`` SET `type` = 20 WHERE `type` = 1") or error(db_error()); query("UPDATE ``mods`` SET `type` = 30 WHERE `type` = 2") or error(db_error()); query("ALTER TABLE ``mods`` CHANGE `type` `type` smallint(1) NOT NULL") or error(db_error()); case 'v0.9.6-dev-20': __query("CREATE TABLE IF NOT EXISTS `bans_new_temp` (\n\t\t\t\t`id` int(10) unsigned NOT NULL AUTO_INCREMENT,\n\t\t\t\t`ipstart` varbinary(16) NOT NULL,\n\t\t\t\t`ipend` varbinary(16) DEFAULT NULL,\n\t\t\t\t`created` int(10) unsigned NOT NULL,\n\t\t\t\t`expires` int(10) unsigned DEFAULT NULL,\n\t\t\t\t`board` varchar(58) DEFAULT NULL,\n\t\t\t\t`creator` int(10) NOT NULL,\n\t\t\t\t`reason` text,\n\t\t\t\t`seen` tinyint(1) NOT NULL,\n\t\t\t\t`post` blob,\n\t\t\t\tPRIMARY KEY (`id`),\n\t\t\t\tKEY `expires` (`expires`),\n\t\t\t\tKEY `ipstart` (`ipstart`,`ipend`)\n\t\t\t\t) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1") or error(db_error()); $listquery = query("SELECT * FROM ``bans`` ORDER BY `id`") or error(db_error()); while ($ban = $listquery->fetch(PDO::FETCH_ASSOC)) { $query = prepare("INSERT INTO ``bans_new_temp`` VALUES \n\t\t\t\t\t(NULL, :ipstart, :ipend, :created, :expires, :board, :creator, :reason, :seen, NULL)"); $range = Bans::parse_range($ban['ip']); if ($range === false) { // Invalid retard ban; just skip it. continue; } $query->bindValue(':ipstart', $range[0]); if ($range[1] !== false && $range[1] != $range[0]) { $query->bindValue(':ipend', $range[1]); } else { $query->bindValue(':ipend', null, PDO::PARAM_NULL); } $query->bindValue(':created', $ban['set']); if ($ban['expires']) { $query->bindValue(':expires', $ban['expires']); } else { $query->bindValue(':expires', null, PDO::PARAM_NULL);