[tracker/wip/carlosg/insert-perf: 13/13] libtracker-data: Avoid varargs function where possible




commit 1f0b3618e31194836e923667fe476c3c356359bf
Author: Carlos Garnacho <carlosg gnome org>
Date:   Tue Dec 1 03:05:53 2020 +0100

    libtracker-data: Avoid varargs function where possible
    
    We let tracker_db_interface_create_statement() take varargs, even
    though most often we have full SQL queries to give. Add a separate
    tracker_db_interface_create_vstatement() function taking varargs,
    and let this function go with the given SQL string as is.
    
    This avoids needless string copies in fast paths, like executing a
    TrackerSparqlStatement.

 src/libtracker-data/tracker-data-manager.c        | 58 ++++++++++-----------
 src/libtracker-data/tracker-data-query.c          | 10 ++--
 src/libtracker-data/tracker-data-update.c         | 62 +++++++++++------------
 src/libtracker-data/tracker-db-interface-sqlite.c | 45 ++++++++++------
 src/libtracker-data/tracker-db-interface.h        |  6 ++-
 src/libtracker-data/tracker-db-manager.c          | 12 ++---
 src/libtracker-data/tracker-sparql.c              |  2 +-
 src/tracker/tracker-export.c                      |  2 +-
 src/tracker/tracker-sql.c                         |  2 +-
 9 files changed, 109 insertions(+), 90 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index 8cdf70827..4a2bee58d 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -3332,9 +3332,9 @@ query_table_exists (TrackerDBInterface  *iface,
        TrackerDBStatement *stmt;
        gboolean exists = FALSE;
 
-       stmt = tracker_db_interface_create_statement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_SELECT, error,
-                                                     "SELECT 1 FROM sqlite_master WHERE tbl_name=\"%s\" AND 
type=\"table\"",
-                                                     table_name);
+       stmt = tracker_db_interface_create_vstatement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_SELECT, error,
+                                                      "SELECT 1 FROM sqlite_master WHERE tbl_name=\"%s\" AND 
type=\"table\"",
+                                                      table_name);
        if (stmt) {
                cursor = tracker_db_statement_start_cursor (stmt, error);
                g_object_unref (stmt);
@@ -4624,7 +4624,7 @@ data_manager_perform_cleanup (TrackerDataManager  *manager,
        stmt = tracker_db_interface_create_statement (iface,
                                                      TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE,
                                                      &internal_error,
-                                                     "%s", str->str);
+                                                     str->str);
        g_string_free (str, TRUE);
 
        if (!stmt)
@@ -4919,10 +4919,10 @@ tracker_data_manager_clear_graph (TrackerDataManager  *manager,
                if (g_str_has_prefix (tracker_class_get_name (classes[i]), "xsd:"))
                        continue;
 
-               stmt = tracker_db_interface_create_statement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_NONE, 
&inner_error,
-                                                             "DELETE FROM \"%s\".\"%s\"",
-                                                             graph,
-                                                             tracker_class_get_name (classes[i]));
+               stmt = tracker_db_interface_create_vstatement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_NONE, 
&inner_error,
+                                                              "DELETE FROM \"%s\".\"%s\"",
+                                                              graph,
+                                                              tracker_class_get_name (classes[i]));
                if (!stmt)
                        break;
 
@@ -4937,11 +4937,11 @@ tracker_data_manager_clear_graph (TrackerDataManager  *manager,
                        continue;
 
                service = tracker_property_get_domain (properties[i]);
-               stmt = tracker_db_interface_create_statement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_NONE, 
&inner_error,
-                                                             "DELETE FROM \"%s\".\"%s_%s\"",
-                                                             graph,
-                                                             tracker_class_get_name (service),
-                                                             tracker_property_get_name (properties[i]));
+               stmt = tracker_db_interface_create_vstatement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_NONE, 
&inner_error,
+                                                              "DELETE FROM \"%s\".\"%s_%s\"",
+                                                              graph,
+                                                              tracker_class_get_name (service),
+                                                              tracker_property_get_name (properties[i]));
                if (!stmt)
                        break;
 
@@ -4987,13 +4987,13 @@ tracker_data_manager_copy_graph (TrackerDataManager  *manager,
                if (g_str_has_prefix (tracker_class_get_name (classes[i]), "xsd:"))
                        continue;
 
-               stmt = tracker_db_interface_create_statement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_NONE, 
&inner_error,
-                                                             "INSERT OR REPLACE INTO \"%s\".\"%s\" "
-                                                             "SELECT * from \"%s\".\"%s\"",
-                                                             destination,
-                                                             tracker_class_get_name (classes[i]),
-                                                             source,
-                                                             tracker_class_get_name (classes[i]));
+               stmt = tracker_db_interface_create_vstatement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_NONE, 
&inner_error,
+                                                              "INSERT OR REPLACE INTO \"%s\".\"%s\" "
+                                                              "SELECT * from \"%s\".\"%s\"",
+                                                              destination,
+                                                              tracker_class_get_name (classes[i]),
+                                                              source,
+                                                              tracker_class_get_name (classes[i]));
                if (!stmt)
                        break;
 
@@ -5008,15 +5008,15 @@ tracker_data_manager_copy_graph (TrackerDataManager  *manager,
                        continue;
 
                service = tracker_property_get_domain (properties[i]);
-               stmt = tracker_db_interface_create_statement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_NONE, 
&inner_error,
-                                                             "INSERT OR REPLACE INTO \"%s\".\"%s_%s\" "
-                                                             "SELECT * from \"%s\".\"%s_%s\"",
-                                                             destination,
-                                                             tracker_class_get_name (service),
-                                                             tracker_property_get_name (properties[i]),
-                                                             source,
-                                                             tracker_class_get_name (service),
-                                                             tracker_property_get_name (properties[i]));
+               stmt = tracker_db_interface_create_vstatement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_NONE, 
&inner_error,
+                                                              "INSERT OR REPLACE INTO \"%s\".\"%s_%s\" "
+                                                              "SELECT * from \"%s\".\"%s_%s\"",
+                                                              destination,
+                                                              tracker_class_get_name (service),
+                                                              tracker_property_get_name (properties[i]),
+                                                              source,
+                                                              tracker_class_get_name (service),
+                                                              tracker_property_get_name (properties[i]));
                if (!stmt)
                        break;
 
diff --git a/src/libtracker-data/tracker-data-query.c b/src/libtracker-data/tracker-data-query.c
index ddde295e8..7ff062f58 100644
--- a/src/libtracker-data/tracker-data-query.c
+++ b/src/libtracker-data/tracker-data-query.c
@@ -48,11 +48,11 @@ tracker_data_query_rdf_type (TrackerDataManager *manager,
        iface = tracker_data_manager_get_writable_db_interface (manager);
        ontologies = tracker_data_manager_get_ontologies (manager);
 
-       stmt = tracker_db_interface_create_statement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_SELECT, &error,
-                                                     "SELECT (SELECT Uri FROM Resource WHERE ID = 
\"rdf:type\") "
-                                                     "FROM \"%s\".\"rdfs:Resource_rdf:type\" "
-                                                     "WHERE ID = ?",
-                                                     graph ? graph : "main");
+       stmt = tracker_db_interface_create_vstatement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_SELECT, &error,
+                                                      "SELECT (SELECT Uri FROM Resource WHERE ID = 
\"rdf:type\") "
+                                                      "FROM \"%s\".\"rdfs:Resource_rdf:type\" "
+                                                      "WHERE ID = ?",
+                                                      graph ? graph : "main");
 
        if (stmt) {
                tracker_db_statement_bind_int (stmt, 0, id);
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index 43bd786ca..e97006631 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -841,23 +841,23 @@ tracker_data_resource_buffer_flush (TrackerData                      *data,
                                property = &g_array_index (table->properties, 
TrackerDataUpdateBufferProperty, i);
 
                                if (table->delete_value && property->delete_all_values) {
-                                       stmt = tracker_db_interface_create_statement (iface, 
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &actual_error,
-                                                                                     "DELETE FROM 
\"%s\".\"%s\" WHERE ID = ?",
-                                                                                     database,
-                                                                                     table_name);
+                                       stmt = tracker_db_interface_create_vstatement (iface, 
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &actual_error,
+                                                                                      "DELETE FROM 
\"%s\".\"%s\" WHERE ID = ?",
+                                                                                      database,
+                                                                                      table_name);
                                } else if (table->delete_value) {
                                        /* delete rows for multiple value properties */
-                                       stmt = tracker_db_interface_create_statement (iface, 
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &actual_error,
-                                                                                     "DELETE FROM 
\"%s\".\"%s\" WHERE ID = ? AND \"%s\" = ?",
-                                                                                     database,
-                                                                                     table_name,
-                                                                                     property->name);
+                                       stmt = tracker_db_interface_create_vstatement (iface, 
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &actual_error,
+                                                                                      "DELETE FROM 
\"%s\".\"%s\" WHERE ID = ? AND \"%s\" = ?",
+                                                                                      database,
+                                                                                      table_name,
+                                                                                      property->name);
                                } else {
-                                       stmt = tracker_db_interface_create_statement (iface, 
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &actual_error,
-                                                                                     "INSERT OR IGNORE INTO 
\"%s\".\"%s\" (ID, \"%s\") VALUES (?, ?)",
-                                                                                     database,
-                                                                                     table_name,
-                                                                                     property->name);
+                                       stmt = tracker_db_interface_create_vstatement (iface, 
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &actual_error,
+                                                                                      "INSERT OR IGNORE INTO 
\"%s\".\"%s\" (ID, \"%s\") VALUES (?, ?)",
+                                                                                      database,
+                                                                                      table_name,
+                                                                                      property->name);
                                }
 
                                if (actual_error) {
@@ -885,9 +885,9 @@ tracker_data_resource_buffer_flush (TrackerData                      *data,
 
                        if (table->delete_row) {
                                /* remove entry from rdf:type table */
-                               stmt = tracker_db_interface_create_statement (iface, 
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &actual_error,
-                                                                             "DELETE FROM 
\"%s\".\"rdfs:Resource_rdf:type\" WHERE ID = ? AND \"rdf:type\" = ?",
-                                                                             database);
+                               stmt = tracker_db_interface_create_vstatement (iface, 
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &actual_error,
+                                                                              "DELETE FROM 
\"%s\".\"rdfs:Resource_rdf:type\" WHERE ID = ? AND \"rdf:type\" = ?",
+                                                                              database);
 
                                if (stmt) {
                                        tracker_db_statement_bind_int (stmt, 0, resource->id);
@@ -902,9 +902,9 @@ tracker_data_resource_buffer_flush (TrackerData                      *data,
                                }
 
                                /* remove row from class table */
-                               stmt = tracker_db_interface_create_statement (iface, 
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &actual_error,
-                                                                             "DELETE FROM \"%s\".\"%s\" 
WHERE ID = ?",
-                                                                             database, table_name);
+                               stmt = tracker_db_interface_create_vstatement (iface, 
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &actual_error,
+                                                                              "DELETE FROM \"%s\".\"%s\" 
WHERE ID = ?",
+                                                                              database, table_name);
 
                                if (stmt) {
                                        tracker_db_statement_bind_int (stmt, 0, resource->id);
@@ -959,15 +959,15 @@ tracker_data_resource_buffer_flush (TrackerData                      *data,
                                g_string_append (sql, ")");
                                g_string_append (values_sql, ")");
 
-                               stmt = tracker_db_interface_create_statement (iface, 
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &actual_error,
-                                                                             "%s %s", sql->str, 
values_sql->str);
+                               stmt = tracker_db_interface_create_vstatement (iface, 
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &actual_error,
+                                                                              "%s %s", sql->str, 
values_sql->str);
                                g_string_free (sql, TRUE);
                                g_string_free (values_sql, TRUE);
                        } else {
                                g_string_append (sql, " WHERE ID = ?");
 
                                stmt = tracker_db_interface_create_statement (iface, 
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &actual_error,
-                                                                             "%s", sql->str);
+                                                                             sql->str);
                                g_string_free (sql, TRUE);
                        }
 
@@ -1349,9 +1349,9 @@ get_property_values (TrackerData     *data,
 
                iface = tracker_data_manager_get_writable_db_interface (data->manager);
 
-               stmt = tracker_db_interface_create_statement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_SELECT, 
&error,
-                                                             "SELECT \"%s\" FROM \"%s\".\"%s\" WHERE ID = ?",
-                                                             field_name, database, table_name);
+               stmt = tracker_db_interface_create_vstatement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_SELECT, 
&error,
+                                                              "SELECT \"%s\" FROM \"%s\".\"%s\" WHERE ID = 
?",
+                                                              field_name, database, table_name);
 
                if (stmt) {
                        tracker_db_statement_bind_int (stmt, 0, data->resource_buffer->id);
@@ -1931,11 +1931,11 @@ cache_delete_resource_type_full (TrackerData  *data,
 
                /* retrieve all subclasses we need to remove from the subject
                 * before we can remove the class specified as object of the statement */
-               stmt = tracker_db_interface_create_statement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_SELECT, 
&error,
-                                                             "SELECT (SELECT Uri FROM Resource WHERE ID = 
subclass.ID) "
-                                                             "FROM \"%s\".\"rdfs:Resource_rdf:type\" AS type 
INNER JOIN \"%s\".\"rdfs:Class_rdfs:subClassOf\" AS subclass ON (type.\"rdf:type\" = subclass.ID) "
-                                                             "WHERE type.ID = ? AND 
subclass.\"rdfs:subClassOf\" = (SELECT ID FROM Resource WHERE Uri = ?)",
-                                                             database, database);
+               stmt = tracker_db_interface_create_vstatement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_SELECT, 
&error,
+                                                              "SELECT (SELECT Uri FROM Resource WHERE ID = 
subclass.ID) "
+                                                              "FROM \"%s\".\"rdfs:Resource_rdf:type\" AS 
type INNER JOIN \"%s\".\"rdfs:Class_rdfs:subClassOf\" AS subclass ON (type.\"rdf:type\" = subclass.ID) "
+                                                              "WHERE type.ID = ? AND 
subclass.\"rdfs:subClassOf\" = (SELECT ID FROM Resource WHERE Uri = ?)",
+                                                              database, database);
 
                if (stmt) {
                        tracker_db_statement_bind_int (stmt, 0, data->resource_buffer->id);
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.c 
b/src/libtracker-data/tracker-db-interface-sqlite.c
index 0fd28c066..260b81d87 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.c
+++ b/src/libtracker-data/tracker-db-interface-sqlite.c
@@ -2341,7 +2341,7 @@ tracker_db_interface_sqlite_fts_update_text (TrackerDBInterface  *db_interface,
        stmt = tracker_db_interface_create_statement (db_interface,
                                                      TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE,
                                                      &error,
-                                                     "%s", query);
+                                                     query);
        g_free (query);
 
         if (!stmt || error) {
@@ -2395,7 +2395,7 @@ tracker_db_interface_sqlite_fts_delete_text (TrackerDBInterface  *db_interface,
        stmt = tracker_db_interface_create_statement (db_interface,
                                                      TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE,
                                                      &error,
-                                                     "%s", query);
+                                                     query);
        g_free (query);
 
        if (!stmt || error) {
@@ -2434,7 +2434,7 @@ tracker_db_interface_sqlite_fts_delete_id (TrackerDBInterface *db_interface,
        stmt = tracker_db_interface_create_statement (db_interface,
                                                      TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE,
                                                      &error,
-                                                     "%s", query);
+                                                     query);
        g_free (query);
 
        if (!stmt || error) {
@@ -2785,35 +2785,27 @@ TrackerDBStatement *
 tracker_db_interface_create_statement (TrackerDBInterface           *db_interface,
                                        TrackerDBStatementCacheType   cache_type,
                                        GError                      **error,
-                                       const gchar                  *query,
-                                       ...)
+                                       const gchar                  *query)
 {
        TrackerDBStatement *stmt = NULL;
-       va_list args;
-       gchar *full_query;
 
        g_return_val_if_fail (TRACKER_IS_DB_INTERFACE (db_interface), NULL);
 
-       va_start (args, query);
-       full_query = g_strdup_vprintf (query, args);
-       va_end (args);
-
        tracker_db_interface_lock (db_interface);
 
        if (cache_type != TRACKER_DB_STATEMENT_CACHE_TYPE_NONE) {
                stmt = tracker_db_interface_lru_lookup (db_interface, &cache_type,
-                                                       full_query);
+                                                       query);
        }
 
        if (!stmt) {
                sqlite3_stmt *sqlite_stmt;
 
                sqlite_stmt = tracker_db_interface_prepare_stmt (db_interface,
-                                                                full_query,
+                                                                query,
                                                                 error);
                if (!sqlite_stmt) {
                        tracker_db_interface_unlock (db_interface);
-                       g_free (full_query);
                        return NULL;
                }
 
@@ -2831,13 +2823,36 @@ tracker_db_interface_create_statement (TrackerDBInterface           *db_interfac
        }
 
        stmt->stmt_is_owned = TRUE;
-       g_free (full_query);
 
        tracker_db_interface_unlock (db_interface);
 
        return g_object_ref_sink (stmt);
 }
 
+TrackerDBStatement *
+tracker_db_interface_create_vstatement (TrackerDBInterface           *db_interface,
+                                        TrackerDBStatementCacheType   cache_type,
+                                        GError                      **error,
+                                        const gchar                  *query,
+                                        ...)
+{
+       TrackerDBStatement *stmt;
+       va_list args;
+       gchar *full_query;
+
+       g_return_val_if_fail (TRACKER_IS_DB_INTERFACE (db_interface), NULL);
+
+       va_start (args, query);
+       full_query = g_strdup_vprintf (query, args);
+       va_end (args);
+
+       stmt = tracker_db_interface_create_statement (db_interface, cache_type,
+                                                     error, full_query);
+       g_free (full_query);
+
+       return stmt;
+}
+
 static gboolean
 execute_stmt (TrackerDBInterface  *interface,
               sqlite3_stmt        *stmt,
diff --git a/src/libtracker-data/tracker-db-interface.h b/src/libtracker-data/tracker-db-interface.h
index f415cdeca..07f370139 100644
--- a/src/libtracker-data/tracker-db-interface.h
+++ b/src/libtracker-data/tracker-db-interface.h
@@ -98,7 +98,11 @@ void                    tracker_db_interface_set_user_data           (TrackerDBI
 gpointer                tracker_db_interface_get_user_data           (TrackerDBInterface         *interface);
 
 /* Functions to create queries/procedures */
-TrackerDBStatement *    tracker_db_interface_create_statement        (TrackerDBInterface          *interface,
+TrackerDBStatement *    tracker_db_interface_create_statement        (TrackerDBInterface           
*db_interface,
+                                                                      TrackerDBStatementCacheType   
cache_type,
+                                                                      GError                      **error,
+                                                                      const gchar                  *query);
+TrackerDBStatement *    tracker_db_interface_create_vstatement       (TrackerDBInterface          *interface,
                                                                       TrackerDBStatementCacheType  
cache_type,
                                                                       GError                     **error,
                                                                       const gchar                 *query,
diff --git a/src/libtracker-data/tracker-db-manager.c b/src/libtracker-data/tracker-db-manager.c
index 5e98337de..9f4e89101 100644
--- a/src/libtracker-data/tracker-db-manager.c
+++ b/src/libtracker-data/tracker-db-manager.c
@@ -198,9 +198,9 @@ db_set_params (TrackerDBInterface   *iface,
        tracker_db_interface_execute_query (iface, NULL, "PRAGMA \"%s\".auto_vacuum = 0", database);
 
        if (enable_wal) {
-               stmt = tracker_db_interface_create_statement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_NONE,
-                                                             &internal_error,
-                                                             "PRAGMA \"%s\".journal_mode = WAL", database);
+               stmt = tracker_db_interface_create_vstatement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_NONE,
+                                                              &internal_error,
+                                                              "PRAGMA \"%s\".journal_mode = WAL", database);
 
                if (internal_error) {
                        g_info ("Can't set journal mode to WAL: '%s'",
@@ -324,9 +324,9 @@ tracker_db_manager_update_version (TrackerDBManager *db_manager)
        GError *error = NULL;
 
        iface = tracker_db_manager_get_writable_db_interface (db_manager);
-       stmt = tracker_db_interface_create_statement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_NONE,
-                                                     &error, "PRAGMA user_version = %d",
-                                                     TRACKER_DB_VERSION_NOW);
+       stmt = tracker_db_interface_create_vstatement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_NONE,
+                                                      &error, "PRAGMA user_version = %d",
+                                                      TRACKER_DB_VERSION_NOW);
        if (stmt) {
                tracker_db_statement_execute (stmt, &error);
                g_object_unref (stmt);
diff --git a/src/libtracker-data/tracker-sparql.c b/src/libtracker-data/tracker-sparql.c
index 6dd0307bf..42bed5907 100644
--- a/src/libtracker-data/tracker-sparql.c
+++ b/src/libtracker-data/tracker-sparql.c
@@ -9349,7 +9349,7 @@ prepare_query (TrackerSparql         *sparql,
                                                      cached ?
                                                      TRACKER_DB_STATEMENT_CACHE_TYPE_SELECT :
                                                      TRACKER_DB_STATEMENT_CACHE_TYPE_NONE,
-                                                     error, "%s", sparql->sql_string);
+                                                     error, sparql->sql_string);
 
        if (!stmt || !literals)
                return stmt;
diff --git a/src/tracker/tracker-export.c b/src/tracker/tracker-export.c
index 900fc411b..ead5de036 100644
--- a/src/tracker/tracker-export.c
+++ b/src/tracker/tracker-export.c
@@ -406,7 +406,7 @@ export_2to3_with_query (const gchar  *query,
        stmt = tracker_db_interface_create_statement (iface,
                                                      TRACKER_DB_STATEMENT_CACHE_TYPE_NONE,
                                                      &inner_error,
-                                                     "%s", query);
+                                                     query);
        if (!stmt) {
                g_propagate_prefixed_error (error, inner_error,
                                            "%s: ", _("Could not run query"));
diff --git a/src/tracker/tracker-sql.c b/src/tracker/tracker-sql.c
index 493e09f33..6803813d0 100644
--- a/src/tracker/tracker-sql.c
+++ b/src/tracker/tracker-sql.c
@@ -124,7 +124,7 @@ sql_by_query (void)
 
        iface = tracker_data_manager_get_db_interface (data_manager);
 
-       stmt = tracker_db_interface_create_statement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_NONE, &error, 
"%s", query);
+       stmt = tracker_db_interface_create_statement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_NONE, &error, 
query);
 
        if (stmt) {
                cursor = tracker_db_statement_start_cursor (stmt, &error);


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