[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/extragear/graphics/digikam/1.0-databaseext
From: Holger Foerster <hamsi2k () freenet ! de>
Date: 2010-03-16 21:07:51
Message-ID: 1268773671.222879.25584.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1104148 by foerster:
Try to don't rely on triggers at mysql scheme. Keep it simple and delete all table \
entries manually.
M +41 -6 data/database/dbconfig.xml.cmake
M +7 -6 libs/database/thumbnaildb.cpp
--- branches/extragear/graphics/digikam/1.0-databaseext/data/database/dbconfig.xml.cmake \
#1104147:1104148 @@ -476,6 +476,14 @@
<dbaction name="Migrate_Write_Settings" mode="query"><statement mode="query">
INSERT INTO Settings (keyword, value) VALUES (:keyword, :value);
</statement></dbaction>
+
+ <dbaction name="Delete_Thumbnail_ByPath" mode="query"><statement mode="query">
+ DELETE FROM Thumbnails WHERE id IN (SELECT thumbId FROM FilePaths WHERE \
path=:path); + </statement></dbaction>
+
+ <dbaction name="Delete_Thumbnail_ByUniqueHashId" mode="query"><statement \
mode="query"> + DELETE FROM Thumbnails WHERE id IN (SELECT thumbId FROM \
UniqueHashes WHERE uniqueHash=:uniqueHash AND fileSize=:filesize); \
+ </statement></dbaction>
</dbactions>
</database>
@@ -825,11 +833,8 @@
<dbaction name="CreateIndex_2" mode="transaction"><statement \
mode="plain">CREATE INDEX id_filePaths ON FilePaths (thumbId);</statement></dbaction> \
<!-- Thumbnails Trigger DB -->
- <dbaction name="CreateTrigger_1" mode="transaction"><statement \
mode="plain">CREATE TRIGGER delete_thumbnails BEFORE DELETE ON \
Thumbnails
- FOR EACH ROW BEGIN
- DELETE FROM UniqueHashes WHERE UniqueHashes.thumbId = \
OLD.id;
- DELETE FROM FilePaths WHERE FilePaths.thumbId = \
OLD.id;
- END;</statement></dbaction>
+ <dbaction name="CreateTrigger_1" mode="transaction"></dbaction>
+
<!-- Migration Statements -->
<dbaction name="Migrate_Cleanup_DB" mode="query"><statement mode="plain">
DROP TABLE IF EXISTS AlbumRoots, Albums, DownloadHistory, FilePaths, \
ImageComments, ImageCopyright, ImageHaarMatrix, ImageInformation, ImageMetadata, \
ImagePositions, ImageProperties, ImageTags, Images, Searches, Settings, Tags, \
TagsTree, Thumbnails, UniqueHashes; @@ -943,7 +948,37 @@
<dbaction name="Migrate_Write_Settings" mode="transaction"><statement \
mode="query"> INSERT INTO Settings (keyword, value) VALUES (:keyword, :value);
</statement></dbaction>
-
+
+ <dbaction name="Delete_Thumbnail_ByPath" mode="query">
+ <statement mode="query">
+ SELECT @thumbsId := thumbId FROM FilePaths WHERE path=:path
+ </statement>
+ <statement mode="query">
+ DELETE FROM UniqueHashes WHERE UniqueHashes.thumbId = @thumbsId;
+ </statement>
+ <statement mode="query">
+ DELETE FROM FilePaths WHERE FilePaths.thumbId = @thumbsId;
+ </statement>
+ <statement mode="query">
+ DELETE FROM Thumbnails WHERE id = @thumbsId;
+ </statement>
+ </dbaction>
+
+ <dbaction name="Delete_Thumbnail_ByUniqueHashId" mode="query">
+ <statement mode="query">
+ SELECT @thumbsId := thumbId FROM UniqueHashes WHERE uniqueHash=:uniqueHash AND \
fileSize=:filesize + </statement>
+ <statement mode="query">
+ DELETE FROM UniqueHashes WHERE UniqueHashes.thumbId = @thumbsId;
+ </statement>
+ <statement mode="query">
+ DELETE FROM FilePaths WHERE FilePaths.thumbId = @thumbsId;
+ </statement>
+ <statement mode="query">
+ DELETE FROM Thumbnails WHERE id = @thumbsId;
+ </statement>
+ </dbaction>
+
</dbactions>
</database>
</databaseconfig>
--- branches/extragear/graphics/digikam/1.0-databaseext/libs/database/thumbnaildb.cpp \
#1104147:1104148 @@ -165,17 +165,18 @@
DatabaseCoreBackend::QueryState ThumbnailDB::removeByUniqueHash(const QString \
&uniqueHash, int fileSize) {
// UniqueHashes + FilePaths entries are removed by trigger
- return d->db->execSql("DELETE FROM Thumbnails WHERE id IN "
- " (SELECT thumbId FROM UniqueHashes WHERE uniqueHash=? AND \
fileSize=?);",
- uniqueHash, fileSize);
+ QMap<QString, QVariant> parameters;
+ parameters.insert(":uniqueHash", uniqueHash);
+ parameters.insert(":filesize", fileSize);
+ return d->db->execDBAction(d->db->getDBAction(QString("Delete_Thumbnail_ByUniqueHashId")), \
parameters); }
DatabaseCoreBackend::QueryState ThumbnailDB::removeByFilePath(const QString &path)
{
// UniqueHashes + FilePaths entries are removed by trigger
- return d->db->execSql("DELETE FROM Thumbnails WHERE id IN "
- " (SELECT thumbId FROM FilePaths WHERE path=?);",
- path);
+ QMap<QString, QVariant> parameters;
+ parameters.insert(":path", path);
+ return d->db->execDBAction(d->db->getDBAction(QString("Delete_Thumbnail_ByPath")), \
parameters); }
DatabaseCoreBackend::QueryState ThumbnailDB::insertThumbnail(const \
DatabaseThumbnailInfo &info, QVariant *lastInsertId)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic