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;
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit