preupdate.php
853 Bytes
<?php
$currentVersion=OCP\Config::getAppValue('search_lucene', 'installed_version');
if (version_compare($currentVersion, '0.5.2', '<')) {
//delete duplicate id entries
$dbtype = OCP\Config::getSystemValue('dbtype', 'sqlite3');
if ($dbtype === 'mysql') {
// fix MySQL ERROR 1093 (HY000), see http://stackoverflow.com/a/12969601
$sql = 'DELETE FROM `*PREFIX*lucene_status`
WHERE `fileid` IN (
SELECT `fileid` FROM (
SELECT `fileid`
FROM `*PREFIX*lucene_status`
GROUP BY `fileid`
HAVING count(`status`) > 1
) AS `mysqlerr1093hack`
)
';
} else {
$sql = 'DELETE FROM `*PREFIX*lucene_status`
WHERE `fileid` IN (
SELECT `fileid`
FROM `*PREFIX*lucene_status`
GROUP BY `fileid`
HAVING count(`status`) > 1
)
';
}
$stmt = OCP\DB::prepare($sql);
$stmt->execute();
}