[tracker/wip/carlosg/rowid-type: 6/7] libtracker-data: Use TrackerRowid internally in triples virtual table
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/rowid-type: 6/7] libtracker-data: Use TrackerRowid internally in triples virtual table
- Date: Thu, 10 Feb 2022 22:38:18 +0000 (UTC)
commit 79133d52bdb7afa5174bd27a8305a9f31a207b98
Author: Carlos Garnacho <carlosg gnome org>
Date: Sun Jan 16 16:34:08 2022 +0100
libtracker-data: Use TrackerRowid internally in triples virtual table
Drop usage of gint for these, and use the more correct TrackerRowid.
src/libtracker-data/tracker-vtab-triples.c | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
---
diff --git a/src/libtracker-data/tracker-vtab-triples.c b/src/libtracker-data/tracker-vtab-triples.c
index e6316b3a5..469a6f02e 100644
--- a/src/libtracker-data/tracker-vtab-triples.c
+++ b/src/libtracker-data/tracker-vtab-triples.c
@@ -22,6 +22,7 @@
#include "tracker-ontologies.h"
#include "tracker-vtab-triples.h"
+#include "tracker-rowid.h"
/* Avoid casts everywhere. */
#define sqlite3_value_text(x) ((const gchar *) sqlite3_value_text(x))
@@ -325,13 +326,16 @@ collect_graphs (TrackerTriplesCursor *cursor)
if (rc != SQLITE_OK)
return rc;
- cursor->query_graphs = g_hash_table_new_full (NULL, NULL, NULL, g_free);
+ cursor->query_graphs = g_hash_table_new_full (tracker_rowid_hash,
+ tracker_rowid_equal,
+ (GDestroyNotify) tracker_rowid_free,
+ g_free);
while ((rc = sqlite3_step (stmt)) == SQLITE_ROW) {
const gchar *uri;
- gint id;
+ TrackerRowid id;
- id = sqlite3_column_int (stmt, 0);
+ id = sqlite3_column_int64 (stmt, 0);
uri = sqlite3_column_text (stmt, 1);
if (cursor->match.graph) {
@@ -343,7 +347,7 @@ collect_graphs (TrackerTriplesCursor *cursor)
}
g_hash_table_insert (cursor->query_graphs,
- GINT_TO_POINTER (id),
+ tracker_rowid_copy (&id),
g_strdup (uri));
}
@@ -428,9 +432,11 @@ bind_arg (sqlite3_stmt *stmt,
static gboolean
iterate_next_stmt (TrackerTriplesCursor *cursor,
const gchar **graph,
- gint *graph_id,
+ TrackerRowid *graph_id,
TrackerProperty **property)
{
+ TrackerRowid *id;
+
while (cursor->properties && !cursor->graphs) {
/* Iterate to next property, and redo graph list */
cursor->properties = g_list_remove (cursor->properties,
@@ -442,9 +448,10 @@ iterate_next_stmt (TrackerTriplesCursor *cursor,
return FALSE;
*property = cursor->properties->data;
- *graph_id = GPOINTER_TO_INT (cursor->graphs->data);
- *graph = g_hash_table_lookup (cursor->query_graphs,
- cursor->graphs->data);
+
+ id = cursor->graphs->data;
+ *graph_id = *id;
+ *graph = g_hash_table_lookup (cursor->query_graphs, id);
cursor->graphs = g_list_remove (cursor->graphs, cursor->graphs->data);
@@ -456,7 +463,7 @@ init_stmt (TrackerTriplesCursor *cursor)
{
TrackerProperty *property;
const gchar *graph;
- gint graph_id;
+ TrackerRowid graph_id;
GString *sql;
int rc;
@@ -468,7 +475,7 @@ init_stmt (TrackerTriplesCursor *cursor)
sql = g_string_new (NULL);
g_string_append_printf (sql,
- "SELECT %d, t.ID, "
+ "SELECT %" G_GINT64_FORMAT ", t.ID, "
" (SELECT ID From Resource WHERE Uri = \"%s\"), "
" %s, "
" %d "
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]