[Rawstudio-commit] r3024 - branches/rawstudio-ng-color/src
Anders Kvist
anders at kvistmail.dk
Sun Jan 17 21:28:19 CET 2010
Author: akv
Date: 2010-01-17 21:28:19 +0100 (Sun, 17 Jan 2010)
New Revision: 3024
Modified:
branches/rawstudio-ng-color/src/rs-library.c
Log:
When updating from library version 0 to 1 find identifiers for all known photos.
Modified: branches/rawstudio-ng-color/src/rs-library.c
===================================================================
--- branches/rawstudio-ng-color/src/rs-library.c 2010-01-17 20:04:36 UTC (rev 3023)
+++ branches/rawstudio-ng-color/src/rs-library.c 2010-01-17 20:28:19 UTC (rev 3024)
@@ -143,7 +143,7 @@
static void
library_check_version(sqlite3 *db)
{
- sqlite3_stmt *stmt;
+ sqlite3_stmt *stmt, *stmt_update;
gint rc, version = 0;
rc = sqlite3_prepare_v2(db, "SELECT version FROM version", -1, &stmt, NULL);
@@ -163,6 +163,26 @@
library_sqlite_error(db, rc);
sqlite3_finalize(stmt);
+ /* Run through all photos in library and insert unique identifier in library */
+ gchar *filename, *identifier;
+ sqlite3_prepare_v2(db, "select filename from library", -1, &stmt, NULL);
+ while (sqlite3_step(stmt) == SQLITE_ROW)
+ {
+ filename = (gchar *) sqlite3_column_text(stmt, 0);
+ if (g_file_test(filename, G_FILE_TEST_EXISTS))
+ {
+ identifier = rs_file_checksum(filename);
+ rc = sqlite3_prepare_v2(db, "update library set identifier = ?1 WHERE filename = ?2;", -1, &stmt_update, NULL);
+ rc = sqlite3_bind_text(stmt_update, 1, identifier, strlen(identifier), SQLITE_TRANSIENT);
+ rc = sqlite3_bind_text(stmt_update, 2, filename, strlen(filename), SQLITE_TRANSIENT);
+ rc = sqlite3_step(stmt_update);
+ library_sqlite_error(db, rc);
+ sqlite3_finalize(stmt_update);
+ g_free(identifier);
+ }
+ }
+ sqlite3_finalize(stmt);
+
library_set_version(db, version+1);
break;
More information about the Rawstudio-commit
mailing list