[niepce: 27/29] library+rust: fix set internal metadata SQL syntax error



commit 1ff61e41d68969d0c73d4fcae445df7a410c566e
Author: Hubert Figuière <hub figuiere net>
Date:   Sun Sep 17 08:54:53 2017 -0400

    library+rust: fix set internal metadata SQL syntax error

 src/engine/db/library.rs |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)
---
diff --git a/src/engine/db/library.rs b/src/engine/db/library.rs
index 06a4b57..d759d87 100644
--- a/src/engine/db/library.rs
+++ b/src/engine/db/library.rs
@@ -564,11 +564,16 @@ impl Library {
 
     fn set_internal_metadata(&self, file_id: LibraryId, column: &str, value: i32) -> bool {
         if let Some(ref conn) = self.dbconn {
-            if let Ok(_) = conn.execute("UPDATE files SET :1=:2 \
-                                         WHERE id=:3;",
-                                        &[&column, &value, &file_id]) {
-                // XXX check success.
-                return true;
+            match conn.execute(format!("UPDATE files SET {}=:1 \
+                                        WHERE id=:2;", column).as_ref(),
+                               &[&value, &file_id]) {
+                Ok(_) => {
+                    // XXX check success.
+                    return true;
+                },
+                Err(err) => {
+                    err_out!("error setting internal metadata {}", err);
+                },
             }
         }
         false
@@ -582,6 +587,8 @@ impl Library {
                                         &[&xmp, &file_id]) {
                 // XXX check success.
                 return true;
+            } else {
+                err_out!("error setting metadatablock");
             }
         }
         false
@@ -614,9 +621,12 @@ impl Library {
                         retval = self.set_internal_metadata(file_id, column,
                                                             unsafe { get_integer(value) });
                         if !retval {
+                            err_out!("set_internal_metadata() failed");
                             return false;
                         }
                     }
+                } else {
+                    err_out!("improper value type for {:?}", meta);
                 }
             },
             Np::NpIptcKeywordsProp => {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]