summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2019-03-14 21:50:42 +0100
committerCarlos Garnacho <carlosg@gnome.org>2019-09-10 00:22:57 +0200
commitb96d321ff55aef26cced6ec0de8f12be2408dceb (patch)
treee11469e87260f32b83f17a45a82d36070733c76e /src
parentb312d1ff70cd45c89969c2f895fa5ed744135a98 (diff)
downloadtracker-b96d321ff55aef26cced6ec0de8f12be2408dceb.tar.gz
libtracker-data: Remove support for tracker:transient
It was unused, plus we could better harness temporary tables for this.
Diffstat (limited to 'src')
-rw-r--r--src/libtracker-data/tracker-data-manager.c156
-rw-r--r--src/libtracker-data/tracker-data-update.c73
-rw-r--r--src/libtracker-data/tracker-property.c28
-rw-r--r--src/libtracker-data/tracker-property.h3
-rw-r--r--src/ontologies/11-rdf.ontology5
5 files changed, 25 insertions, 240 deletions
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index 76c898dde..fade91c47 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -398,53 +398,6 @@ is_allowed_conversion (const gchar *oldv,
}
static gboolean
-check_unsupported_property_value_change (TrackerDataManager *manager,
- const gchar *ontology_path,
- const gchar *kind,
- const gchar *subject,
- const gchar *predicate,
- const gchar *object)
-{
- GError *error = NULL;
- gboolean needed = TRUE;
- gchar *query = NULL;
- TrackerDBCursor *cursor;
-
- query = g_strdup_printf ("SELECT ?old_value WHERE { "
- "<%s> %s ?old_value "
- "}", subject, kind);
-
- cursor = tracker_data_query_sparql_cursor (manager, query, &error);
-
- if (cursor && tracker_db_cursor_iter_next (cursor, NULL, NULL)) {
- if (g_strcmp0 (object, tracker_db_cursor_get_string (cursor, 0, NULL)) == 0) {
- needed = FALSE;
- } else {
- needed = TRUE;
- }
-
- } else {
- if (object && (g_strcmp0 (object, "false") == 0)) {
- needed = FALSE;
- } else {
- needed = (object != NULL);
- }
- }
-
- g_free (query);
- if (cursor) {
- g_object_unref (cursor);
- }
-
- if (error) {
- g_critical ("Ontology change, %s", error->message);
- g_clear_error (&error);
- }
-
- return needed;
-}
-
-static gboolean
update_property_value (TrackerDataManager *manager,
const gchar *ontology_path,
const gchar *kind,
@@ -1157,44 +1110,6 @@ tracker_data_ontology_load_statement (TrackerDataManager *manager,
}
tracker_property_set_secondary_index (property, secondary_index);
- } else if (g_strcmp0 (predicate, TRACKER_PREFIX_TRACKER "transient") == 0) {
- TrackerProperty *property;
- gboolean is_new;
-
- property = tracker_ontologies_get_property_by_uri (manager->ontologies, subject);
- if (property == NULL) {
- g_critical ("%s: Unknown property %s", ontology_path, subject);
- return;
- }
-
- is_new = tracker_property_get_is_new (property);
- if (is_new != in_update) {
- /* Detect unsupported ontology change.
- * Wouldn't be very hard to support this, just dropping the tabtle
- * or creating the table in the-non memdisk db file, but afaik this
- * isn't supported right now */
- if (in_update == TRUE && is_new == FALSE) {
- if (check_unsupported_property_value_change (manager,
- ontology_path,
- "tracker:transient",
- subject,
- predicate,
- object)) {
- handle_unsupported_ontology_change (manager,
- ontology_path,
- tracker_property_get_name (property),
- "tracker:transient",
- tracker_property_get_transient (property) ? "true" : "false",
- g_strcmp0 (object, "true") ==0 ? "true" : "false",
- error);
- }
- }
- return;
- }
-
- if (g_strcmp0 (object, "true") == 0) {
- tracker_property_set_transient (property, TRUE);
- }
} else if (g_strcmp0 (predicate, TRACKER_PREFIX_TRACKER "fulltextIndexed") == 0) {
TrackerProperty *property;
@@ -1977,7 +1892,6 @@ tracker_data_ontology_process_statement (TrackerDataManager *manager,
g_strcmp0 (predicate, RDFS_RANGE) == 0 ||
/* g_strcmp0 (predicate, NRL_MAX_CARDINALITY) == 0 || */
g_strcmp0 (predicate, TRACKER_PREFIX_TRACKER "indexed") == 0 ||
- g_strcmp0 (predicate, TRACKER_PREFIX_TRACKER "transient") == 0 ||
g_strcmp0 (predicate, TRACKER_PREFIX_TRACKER "fulltextIndexed") == 0) {
TrackerProperty *prop;
@@ -2336,7 +2250,6 @@ db_get_static_data (TrackerDBInterface *iface,
"\"tracker:indexed\", "
"(SELECT Uri FROM Resource WHERE ID = \"tracker:secondaryIndex\"), "
"\"tracker:fulltextIndexed\", "
- "\"tracker:transient\", "
"\"tracker:writeback\", "
"(SELECT 1 FROM \"rdfs:Resource_rdf:type\" WHERE ID = \"rdf:Property\".ID AND "
"\"rdf:type\" = (SELECT ID FROM Resource WHERE Uri = '" NRL_INVERSE_FUNCTIONAL_PROPERTY "')), "
@@ -2354,7 +2267,7 @@ db_get_static_data (TrackerDBInterface *iface,
TrackerProperty *property;
const gchar *uri, *domain_uri, *range_uri, *secondary_index_uri, *default_value;
gboolean multi_valued, indexed, fulltext_indexed;
- gboolean transient, is_inverse_functional_property;
+ gboolean is_inverse_functional_property;
gboolean writeback;
gint id;
@@ -2398,18 +2311,8 @@ db_get_static_data (TrackerDBInterface *iface,
fulltext_indexed = FALSE;
}
- tracker_db_cursor_get_value (cursor, 8, &value);
-
- if (G_VALUE_TYPE (&value) != 0) {
- transient = (g_value_get_int64 (&value) == 1);
- g_value_unset (&value);
- } else {
- /* NULL */
- transient = FALSE;
- }
-
/* tracker:writeback column */
- tracker_db_cursor_get_value (cursor, 9, &value);
+ tracker_db_cursor_get_value (cursor, 8, &value);
if (G_VALUE_TYPE (&value) != 0) {
writeback = (g_value_get_int64 (&value) == 1);
@@ -2420,7 +2323,7 @@ db_get_static_data (TrackerDBInterface *iface,
}
/* NRL_INVERSE_FUNCTIONAL_PROPERTY column */
- tracker_db_cursor_get_value (cursor, 10, &value);
+ tracker_db_cursor_get_value (cursor, 9, &value);
if (G_VALUE_TYPE (&value) != 0) {
is_inverse_functional_property = TRUE;
@@ -2430,13 +2333,12 @@ db_get_static_data (TrackerDBInterface *iface,
is_inverse_functional_property = FALSE;
}
- default_value = tracker_db_cursor_get_string (cursor, 11, NULL);
+ default_value = tracker_db_cursor_get_string (cursor, 10, NULL);
tracker_property_set_ontologies (property, manager->ontologies);
tracker_property_set_is_new_domain_index (property, tracker_ontologies_get_class_by_uri (manager->ontologies, domain_uri), FALSE);
tracker_property_set_is_new (property, FALSE);
tracker_property_set_cardinality_changed (property, FALSE);
- tracker_property_set_transient (property, transient);
tracker_property_set_uri (property, uri);
tracker_property_set_id (property, id);
tracker_property_set_domain (property, tracker_ontologies_get_class_by_uri (manager->ontologies, domain_uri));
@@ -3398,52 +3300,6 @@ error_out:
}
static void
-clean_decomposed_transient_metadata (TrackerDataManager *manager,
- TrackerDBInterface *iface)
-{
- TrackerProperty **properties;
- TrackerProperty *property;
- guint i, n_props;
-
- properties = tracker_ontologies_get_properties (manager->ontologies, &n_props);
-
- for (i = 0; i < n_props; i++) {
- property = properties[i];
-
- if (tracker_property_get_transient (property)) {
- TrackerClass *domain;
- const gchar *service_name;
- const gchar *prop_name;
- GError *error = NULL;
-
- domain = tracker_property_get_domain (property);
- service_name = tracker_class_get_name (domain);
- prop_name = tracker_property_get_name (property);
-
- if (tracker_property_get_multiple_values (property)) {
- /* create the disposable table */
- tracker_db_interface_execute_query (iface, &error, "DELETE FROM \"%s_%s\"",
- service_name,
- prop_name);
- } else {
- /* create the disposable table */
- tracker_db_interface_execute_query (iface, &error, "UPDATE \"%s\" SET \"%s\" = NULL",
- service_name,
- prop_name);
- }
-
- if (error) {
- g_critical ("Cleaning transient propery '%s:%s' failed: %s",
- service_name,
- prop_name,
- error->message);
- g_error_free (error);
- }
- }
- }
-}
-
-static void
tracker_data_ontology_import_finished (TrackerDataManager *manager)
{
TrackerClass **classes;
@@ -4172,10 +4028,6 @@ tracker_data_manager_initable_init (GInitable *initable,
}
write_ontologies_gvdb (manager, FALSE /* overwrite */, NULL);
-
- /* Skipped in the read-only case as it can't work with direct access and
- it reduces initialization time */
- clean_decomposed_transient_metadata (manager, iface);
} else {
GError *gvdb_error = NULL;
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index 66c605f7e..25baa6df7 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -173,7 +173,6 @@ static gint ensure_resource_id (TrackerData *data,
static void cache_insert_value (TrackerData *data,
const gchar *table_name,
const gchar *field_name,
- gboolean transient,
GValue *value,
gint graph,
gboolean multiple_values,
@@ -565,12 +564,11 @@ cache_table_free (TrackerDataUpdateBufferTable *table)
static TrackerDataUpdateBufferTable *
cache_ensure_table (TrackerData *data,
const gchar *table_name,
- gboolean multiple_values,
- gboolean transient)
+ gboolean multiple_values)
{
TrackerDataUpdateBufferTable *table;
- if (!data->resource_buffer->modified && !transient) {
+ if (!data->resource_buffer->modified) {
/* first modification of this particular resource, update tracker:modified */
GValue gvalue = { 0 };
@@ -580,7 +578,7 @@ cache_ensure_table (TrackerData *data,
g_value_init (&gvalue, G_TYPE_INT64);
g_value_set_int64 (&gvalue, get_transaction_modseq (data));
cache_insert_value (data, "rdfs:Resource", "tracker:modified",
- TRUE, &gvalue, 0,
+ &gvalue, 0,
FALSE, FALSE, FALSE);
}
@@ -600,7 +598,7 @@ cache_insert_row (TrackerData *data,
{
TrackerDataUpdateBufferTable *table;
- table = cache_ensure_table (data, tracker_class_get_name (class), FALSE, FALSE);
+ table = cache_ensure_table (data, tracker_class_get_name (class), FALSE);
table->class = class;
table->insert = TRUE;
}
@@ -609,7 +607,6 @@ static void
cache_insert_value (TrackerData *data,
const gchar *table_name,
const gchar *field_name,
- gboolean transient,
GValue *value,
gint graph,
gboolean multiple_values,
@@ -630,7 +627,7 @@ cache_insert_value (TrackerData *data,
#endif
property.date_time = date_time;
- table = cache_ensure_table (data, table_name, multiple_values, transient);
+ table = cache_ensure_table (data, table_name, multiple_values);
g_array_append_val (table->properties, property);
}
@@ -640,7 +637,7 @@ cache_delete_row (TrackerData *data,
{
TrackerDataUpdateBufferTable *table;
- table = cache_ensure_table (data, tracker_class_get_name (class), FALSE, FALSE);
+ table = cache_ensure_table (data, tracker_class_get_name (class), FALSE);
table->class = class;
table->delete_row = TRUE;
}
@@ -649,7 +646,6 @@ static void
cache_delete_value (TrackerData *data,
const gchar *table_name,
const gchar *field_name,
- gboolean transient,
GValue *value,
gboolean multiple_values,
gboolean fts,
@@ -666,7 +662,7 @@ cache_delete_value (TrackerData *data,
#endif
property.date_time = date_time;
- table = cache_ensure_table (data, table_name, multiple_values, transient);
+ table = cache_ensure_table (data, table_name, multiple_values);
table->delete_value = TRUE;
g_array_append_val (table->properties, property);
}
@@ -1114,7 +1110,7 @@ tracker_data_update_buffer_might_flush (TrackerData *data,
GError **error)
{
/* avoid high memory usage by update buffer */
- if (g_hash_table_size (data->update_buffer.resources)) >= 1000) {
+ if (g_hash_table_size (data->update_buffer.resources) >= 1000) {
tracker_data_update_buffer_flush (data, error);
}
}
@@ -1267,7 +1263,7 @@ cache_create_service_decomposed (TrackerData *data,
g_value_set_int64 (&gvalue, class_id);
cache_insert_value (data, "rdfs:Resource_rdf:type", "rdf:type",
- FALSE, &gvalue, final_graph_id,
+ &gvalue, final_graph_id,
TRUE, FALSE, FALSE);
add_class_count (data, cl, 1);
@@ -1331,7 +1327,6 @@ cache_create_service_decomposed (TrackerData *data,
cache_insert_value (data,
tracker_class_get_name (cl),
tracker_property_get_name (*domain_indexes),
- tracker_property_get_transient (*domain_indexes),
&gvalue_copy,
graph != NULL ? ensure_graph_id (data, graph, NULL) : graph_id,
tracker_property_get_multiple_values (*domain_indexes),
@@ -1719,7 +1714,6 @@ process_domain_indexes (TrackerData *data,
cache_insert_value (data,
tracker_class_get_name (*domain_index_classes),
field_name,
- tracker_property_get_transient (property),
&gvalue_copy,
graph != NULL ? ensure_graph_id (data, graph, NULL) : graph_id,
FALSE,
@@ -1831,7 +1825,6 @@ cache_insert_metadata_decomposed (TrackerData *data,
} else {
cache_insert_value (data, table_name, field_name,
- tracker_property_get_transient (property),
&gvalue,
graph != NULL ? ensure_graph_id (data, graph, NULL) : graph_id,
multiple_values,
@@ -2009,7 +2002,6 @@ cache_update_metadata_decomposed (TrackerData *data,
}
cache_insert_value (data, table_name, field_name,
- tracker_property_get_transient (property),
&gvalue,
graph != NULL ? ensure_graph_id (data, graph, NULL) : graph_id,
multiple_values,
@@ -2067,7 +2059,6 @@ delete_metadata_decomposed (TrackerData *data,
g_value_unset (&gvalue);
} else {
cache_delete_value (data, table_name, field_name,
- tracker_property_get_transient (property),
&gvalue, multiple_values,
tracker_property_get_fulltext_indexed (property),
tracker_property_get_data_type (property) == TRACKER_PROPERTY_TYPE_DATETIME);
@@ -2085,7 +2076,6 @@ delete_metadata_decomposed (TrackerData *data,
cache_delete_value (data,
tracker_class_get_name (*domain_index_classes),
field_name,
- tracker_property_get_transient (property),
&gvalue_copy, multiple_values,
tracker_property_get_fulltext_indexed (property),
tracker_property_get_data_type (property) == TRACKER_PROPERTY_TYPE_DATETIME);
@@ -2265,7 +2255,6 @@ cache_delete_resource_type_full (TrackerData *data,
value_set_remove_value (old_values, &gvalue);
cache_delete_value (data, table_name, field_name,
- tracker_property_get_transient (prop),
&gvalue, multiple_values,
tracker_property_get_fulltext_indexed (prop),
tracker_property_get_data_type (prop) == TRACKER_PROPERTY_TYPE_DATETIME);
@@ -2283,7 +2272,6 @@ cache_delete_resource_type_full (TrackerData *data,
cache_delete_value (data,
tracker_class_get_name (*domain_index_classes),
field_name,
- tracker_property_get_transient (prop),
&gvalue_copy, multiple_values,
tracker_property_get_fulltext_indexed (prop),
tracker_property_get_data_type (prop) == TRACKER_PROPERTY_TYPE_DATETIME);
@@ -2454,11 +2442,7 @@ tracker_data_delete_statement (TrackerData *data,
field = tracker_ontologies_get_property_by_uri (ontologies, predicate);
if (field != NULL) {
pred_id = tracker_property_get_id (field);
-
- if (!tracker_property_get_transient (field)) {
- data->has_persistent = TRUE;
- }
-
+ data->has_persistent = TRUE;
change = delete_metadata_decomposed (data, field, object, 0, error);
} else {
g_set_error (error, TRACKER_SPARQL_ERROR, TRACKER_SPARQL_ERROR_UNKNOWN_PROPERTY,
@@ -2513,10 +2497,7 @@ delete_all_objects (TrackerData *data,
if (field != NULL) {
GArray *old_values;
- if (!tracker_property_get_transient (field)) {
- data->has_persistent = TRUE;
- }
-
+ data->has_persistent = TRUE;
old_values = get_old_property_values (data, field, &new_error);
if (new_error) {
g_propagate_error (error, new_error);
@@ -2711,9 +2692,7 @@ tracker_data_insert_statement_with_uri (TrackerData *data,
prop_id = tracker_property_get_id (property);
}
- if (!tracker_property_get_transient (property)) {
- data->has_persistent = TRUE;
- }
+ data->has_persistent = TRUE;
/* subjects and objects starting with `:' are anonymous blank nodes */
if (g_str_has_prefix (object, ":")) {
@@ -2748,11 +2727,9 @@ tracker_data_insert_statement_with_uri (TrackerData *data,
return;
}
- if (!tracker_property_get_transient (property)) {
- graph_id = (graph != NULL ? query_resource_id (data, graph) : 0);
- final_prop_id = (prop_id != 0) ? prop_id : tracker_data_query_resource_id (data->manager, iface, predicate);
- object_id = query_resource_id (data, object);
- }
+ graph_id = (graph != NULL ? query_resource_id (data, graph) : 0);
+ final_prop_id = (prop_id != 0) ? prop_id : tracker_data_query_resource_id (data->manager, iface, predicate);
+ object_id = query_resource_id (data, object);
change = TRUE;
} else {
@@ -2822,9 +2799,7 @@ tracker_data_insert_statement_with_string (TrackerData *data,
pred_id = tracker_property_get_id (property);
}
- if (!tracker_property_get_transient (property)) {
- data->has_persistent = TRUE;
- }
+ data->has_persistent = TRUE;
if (!tracker_data_insert_statement_common (data, graph, subject, predicate, object, &actual_error)) {
if (actual_error) {
@@ -2899,9 +2874,7 @@ tracker_data_update_statement_with_uri (TrackerData *data,
prop_id = tracker_property_get_id (property);
}
- if (!tracker_property_get_transient (property)) {
- data->has_persistent = TRUE;
- }
+ data->has_persistent = TRUE;
/* subjects and objects starting with `:' are anonymous blank nodes */
if (g_str_has_prefix (object, ":")) {
@@ -2938,11 +2911,9 @@ tracker_data_update_statement_with_uri (TrackerData *data,
return;
}
- if (!tracker_property_get_transient (property)) {
- graph_id = (graph != NULL ? query_resource_id (data, graph) : 0);
- final_prop_id = (prop_id != 0) ? prop_id : tracker_data_query_resource_id (data->manager, iface, predicate);
- object_id = query_resource_id (data, object);
- }
+ graph_id = (graph != NULL ? query_resource_id (data, graph) : 0);
+ final_prop_id = (prop_id != 0) ? prop_id : tracker_data_query_resource_id (data->manager, iface, predicate);
+ object_id = query_resource_id (data, object);
change = TRUE;
} else {
@@ -3102,9 +3073,7 @@ tracker_data_update_statement_with_string (TrackerData *data,
multiple_values = tracker_property_get_multiple_values (property);
- if (!tracker_property_get_transient (property)) {
- data->has_persistent = TRUE;
- }
+ data->has_persistent = TRUE;
/* Update and insert share the exact same code here */
if (!tracker_data_insert_statement_common (data, graph, subject, predicate, object, &actual_error)) {
diff --git a/src/libtracker-data/tracker-property.c b/src/libtracker-data/tracker-property.c
index 739d360a9..83efcc1da 100644
--- a/src/libtracker-data/tracker-property.c
+++ b/src/libtracker-data/tracker-property.c
@@ -58,7 +58,6 @@ struct _TrackerPropertyPrivate {
gboolean fulltext_indexed;
gboolean multiple_values;
gboolean last_multiple_values;
- gboolean transient;
gboolean is_inverse_functional_property;
gboolean is_new;
gboolean db_schema_changed;
@@ -137,7 +136,6 @@ tracker_property_init (TrackerProperty *property)
priv->id = 0;
priv->weight = 1;
- priv->transient = FALSE;
priv->multiple_values = TRUE;
priv->force_journal = TRUE;
priv->super_properties = g_array_new (TRUE, TRUE, sizeof (TrackerProperty *));
@@ -220,19 +218,6 @@ tracker_property_get_uri (TrackerProperty *property)
return priv->uri;
}
-gboolean
-tracker_property_get_transient (TrackerProperty *property)
-{
- TrackerPropertyPrivate *priv;
-
- g_return_val_if_fail (TRACKER_IS_PROPERTY (property), FALSE);
-
- priv = tracker_property_get_instance_private (property);
-
- return priv->transient;
-}
-
-
const gchar *
tracker_property_get_name (TrackerProperty *property)
{
@@ -728,19 +713,6 @@ tracker_property_set_uri (TrackerProperty *property,
}
void
-tracker_property_set_transient (TrackerProperty *property,
- gboolean value)
-{
- TrackerPropertyPrivate *priv;
-
- g_return_if_fail (TRACKER_IS_PROPERTY (property));
-
- priv = tracker_property_get_instance_private (property);
-
- priv->transient = value;
-}
-
-void
tracker_property_set_domain (TrackerProperty *property,
TrackerClass *value)
{
diff --git a/src/libtracker-data/tracker-property.h b/src/libtracker-data/tracker-property.h
index d6c314d47..a84072268 100644
--- a/src/libtracker-data/tracker-property.h
+++ b/src/libtracker-data/tracker-property.h
@@ -89,7 +89,6 @@ gboolean tracker_property_get_fulltext_indexed (TrackerProperty
gboolean tracker_property_get_multiple_values (TrackerProperty *property);
gboolean tracker_property_get_last_multiple_values(TrackerProperty *property);
gboolean tracker_property_get_orig_multiple_values(TrackerProperty *property);
-gboolean tracker_property_get_transient (TrackerProperty *property);
gboolean tracker_property_get_is_new (TrackerProperty *property);
gboolean tracker_property_get_is_new_domain_index (TrackerProperty *property,
TrackerClass *class);
@@ -130,8 +129,6 @@ void tracker_property_set_last_multiple_values(TrackerProperty
gboolean value);
void tracker_property_set_orig_multiple_values(TrackerProperty *property,
gboolean value);
-void tracker_property_set_transient (TrackerProperty *property,
- gboolean value);
void tracker_property_set_is_new (TrackerProperty *property,
gboolean value);
void tracker_property_set_is_new_domain_index (TrackerProperty *property,
diff --git a/src/ontologies/11-rdf.ontology b/src/ontologies/11-rdf.ontology
index 4bd497715..bdb6e1200 100644
--- a/src/ontologies/11-rdf.ontology
+++ b/src/ontologies/11-rdf.ontology
@@ -101,11 +101,6 @@ tracker:fulltextNoLimit a rdf:Property ;
rdfs:domain rdf:Property ;
rdfs:range xsd:boolean .
-tracker:transient a rdf:Property ;
- nrl:maxCardinality 1 ;
- rdfs:domain rdf:Property ;
- rdfs:range xsd:boolean .
-
tracker:weight a rdf:Property ;
nrl:maxCardinality 1 ;
rdfs:domain rdf:Property ;