[tracker/wip/carlosg/serialize-api] libtracker-data: Do not forward static value types to cursors
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/serialize-api] libtracker-data: Do not forward static value types to cursors
- Date: Sun, 30 Jan 2022 16:27:06 +0000 (UTC)
commit bb8e4509bbbb10c0289a4bf3be7f9fddb2c4448d
Author: Carlos Garnacho <carlosg gnome org>
Date: Sun Jan 30 17:07:43 2022 +0100
libtracker-data: Do not forward static value types to cursors
Now that this information is contained in the cursor itself for all the
query types that we care, we can avoid forwarding this programmatically.
src/libtracker-data/tracker-db-interface-sqlite.c | 54 +++--------------------
src/libtracker-data/tracker-db-interface.h | 2 -
src/libtracker-data/tracker-sparql.c | 16 +------
3 files changed, 8 insertions(+), 64 deletions(-)
---
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.c
b/src/libtracker-data/tracker-db-interface-sqlite.c
index df9b9ecda..246c430da 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.c
+++ b/src/libtracker-data/tracker-db-interface-sqlite.c
@@ -116,8 +116,6 @@ struct TrackerDBCursor {
TrackerDBStatement *ref_stmt;
gboolean finished;
gint n_columns;
- TrackerPropertyType *types;
- guint n_types;
};
struct TrackerDBCursorClass {
@@ -143,9 +141,7 @@ static TrackerDBStatement *tracker_db_statement_sqlite_new (TrackerDBIn
sqlite3_stmt *sqlite_stmt);
static void tracker_db_statement_sqlite_reset (TrackerDBStatement *stmt);
static TrackerDBCursor *tracker_db_cursor_sqlite_new (TrackerDBStatement *ref_stmt,
- gint n_columns,
- TrackerPropertyType *types,
- guint n_types);
+ gint n_columns);
static gboolean tracker_db_cursor_get_boolean (TrackerSparqlCursor *cursor,
guint column);
static gboolean db_cursor_iter_next (TrackerDBCursor *cursor,
@@ -3132,8 +3128,6 @@ tracker_db_cursor_finalize (GObject *object)
tracker_db_cursor_close (cursor);
- g_free (cursor->types);
-
G_OBJECT_CLASS (tracker_db_cursor_parent_class)->finalize (object);
}
@@ -3222,9 +3216,7 @@ tracker_db_cursor_class_init (TrackerDBCursorClass *class)
static TrackerDBCursor *
tracker_db_cursor_sqlite_new (TrackerDBStatement *ref_stmt,
- gint n_columns,
- TrackerPropertyType *types,
- guint n_types)
+ gint n_columns)
{
TrackerDBCursor *cursor;
TrackerDBInterface *iface;
@@ -3256,16 +3248,6 @@ tracker_db_cursor_sqlite_new (TrackerDBStatement *ref_stmt,
cursor->stmt = ref_stmt->stmt;
cursor->ref_stmt = tracker_db_statement_sqlite_grab (ref_stmt);
- if (types) {
- guint i;
-
- cursor->types = g_new (TrackerPropertyType, n_types);
- cursor->n_types = n_types;
- for (i = 0; i < n_types; i++) {
- cursor->types[i] = types[i];
- }
- }
-
return cursor;
}
@@ -3651,26 +3633,6 @@ tracker_db_cursor_get_value_type (TrackerDBCursor *cursor,
return TRACKER_SPARQL_VALUE_TYPE_UNBOUND;
}
- if (column < cursor->n_types) {
- switch (cursor->types[column]) {
- case TRACKER_PROPERTY_TYPE_RESOURCE:
- return TRACKER_SPARQL_VALUE_TYPE_URI;
- case TRACKER_PROPERTY_TYPE_INTEGER:
- return TRACKER_SPARQL_VALUE_TYPE_INTEGER;
- case TRACKER_PROPERTY_TYPE_DOUBLE:
- return TRACKER_SPARQL_VALUE_TYPE_DOUBLE;
- case TRACKER_PROPERTY_TYPE_DATETIME:
- return TRACKER_SPARQL_VALUE_TYPE_DATETIME;
- case TRACKER_PROPERTY_TYPE_BOOLEAN:
- return TRACKER_SPARQL_VALUE_TYPE_BOOLEAN;
- case TRACKER_PROPERTY_TYPE_DATE:
- case TRACKER_PROPERTY_TYPE_LANGSTRING:
- case TRACKER_PROPERTY_TYPE_STRING:
- case TRACKER_PROPERTY_TYPE_UNKNOWN:
- return TRACKER_SPARQL_VALUE_TYPE_STRING;
- }
- }
-
switch (column_type) {
case SQLITE_INTEGER:
return TRACKER_SPARQL_VALUE_TYPE_INTEGER;
@@ -3747,20 +3709,18 @@ tracker_db_statement_start_cursor (TrackerDBStatement *stmt,
g_return_val_if_fail (TRACKER_IS_DB_STATEMENT (stmt), NULL);
g_return_val_if_fail (!stmt->stmt_is_used, NULL);
- return tracker_db_cursor_sqlite_new (stmt, -1, NULL, 0);
+ return tracker_db_cursor_sqlite_new (stmt, -1);
}
TrackerDBCursor *
-tracker_db_statement_start_sparql_cursor (TrackerDBStatement *stmt,
- gint n_columns,
- TrackerPropertyType *types,
- guint n_types,
- GError **error)
+tracker_db_statement_start_sparql_cursor (TrackerDBStatement *stmt,
+ gint n_columns,
+ GError **error)
{
g_return_val_if_fail (TRACKER_IS_DB_STATEMENT (stmt), NULL);
g_return_val_if_fail (!stmt->stmt_is_used, NULL);
- return tracker_db_cursor_sqlite_new (stmt, n_columns, types, n_types);
+ return tracker_db_cursor_sqlite_new (stmt, n_columns);
}
static void
diff --git a/src/libtracker-data/tracker-db-interface.h b/src/libtracker-data/tracker-db-interface.h
index d449a94f9..6de51d8bc 100644
--- a/src/libtracker-data/tracker-db-interface.h
+++ b/src/libtracker-data/tracker-db-interface.h
@@ -144,8 +144,6 @@ TrackerDBCursor * tracker_db_statement_start_cursor (TrackerDBS
GError **error);
TrackerDBCursor * tracker_db_statement_start_sparql_cursor (TrackerDBStatement *stmt,
gint n_columns,
- TrackerPropertyType *types,
- guint n_types,
GError **error);
/* Functions to deal with a cursor */
diff --git a/src/libtracker-data/tracker-sparql.c b/src/libtracker-data/tracker-sparql.c
index 3ae559953..f05bfb2f4 100644
--- a/src/libtracker-data/tracker-sparql.c
+++ b/src/libtracker-data/tracker-sparql.c
@@ -174,7 +174,6 @@ struct _TrackerSparql
GHashTable *prefix_map;
GList *filter_clauses;
- GArray *var_types;
GHashTable *cached_bindings;
GVariantBuilder *blank_nodes;
@@ -242,7 +241,6 @@ tracker_sparql_finalize (GObject *object)
g_ptr_array_unref (sparql->named_graphs);
g_ptr_array_unref (sparql->anon_graphs);
- g_array_unref (sparql->var_types);
g_free (sparql->base);
g_clear_pointer (&sparql->policy.graphs, g_ptr_array_unref);
@@ -2788,10 +2786,7 @@ tracker_sparql_add_select_var (TrackerSparql *sparql,
const gchar *name,
TrackerPropertyType type)
{
- if (sparql->current_state->select_context == sparql->context) {
- /* Topmost select context */
- g_array_append_val (sparql->var_types, type);
- } else {
+ if (sparql->current_state->select_context != sparql->context) {
TrackerContext *parent;
TrackerVariable *var;
@@ -4708,7 +4703,6 @@ get_solution_for_pattern (TrackerSparql *sparql,
cursor = tracker_db_statement_start_sparql_cursor (stmt,
select_context->n_columns,
- NULL, 0,
error);
g_object_unref (stmt);
@@ -9797,7 +9791,6 @@ tracker_sparql_init (TrackerSparql *sparql)
g_free, g_object_unref);
sparql->parameters = g_hash_table_new_full (g_str_hash, g_str_equal,
g_free, g_object_unref);
- sparql->var_types = g_array_new (FALSE, FALSE, sizeof (TrackerPropertyType));
sparql->anon_graphs = g_ptr_array_new_with_free_func (g_free);
sparql->named_graphs = g_ptr_array_new_with_free_func (g_free);
sparql->cacheable = TRUE;
@@ -9989,7 +9982,6 @@ tracker_sparql_reset_state (TrackerSparql *sparql)
g_clear_object (&sparql->context);
g_list_free (sparql->filter_clauses);
sparql->filter_clauses = NULL;
- g_array_set_size (sparql->var_types, 0);
g_hash_table_remove_all (sparql->cached_bindings);
g_hash_table_remove_all (sparql->parameters);
g_ptr_array_set_size (sparql->anon_graphs, 0);
@@ -10005,8 +9997,6 @@ tracker_sparql_execute_cursor (TrackerSparql *sparql,
TrackerDBInterface *iface = NULL;
TrackerDBCursor *cursor = NULL;
TrackerSelectContext *select_context;
- TrackerPropertyType *types;
- guint n_types;
g_mutex_lock (&sparql->mutex);
@@ -10055,12 +10045,8 @@ tracker_sparql_execute_cursor (TrackerSparql *sparql,
if (!stmt)
goto error;
- types = (TrackerPropertyType *) sparql->var_types->data;
- n_types = sparql->var_types->len;
-
cursor = tracker_db_statement_start_sparql_cursor (stmt,
select_context->n_columns,
- types, n_types,
error);
g_object_unref (stmt);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]