summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Van Hoof <philip@codeminded.be>2010-08-11 15:44:28 +0200
committerPhilip Van Hoof <philip@codeminded.be>2010-08-11 15:50:15 +0200
commitc03c0c9cd5ff0faf4495eb16e6b86f1b760a37db (patch)
tree6935314c77badc14638d8cc0b8221e89dc8e95af
parent47db48802f4f23eb9974657eebd71085eba047bc (diff)
downloadtracker-c03c0c9cd5ff0faf4495eb16e6b86f1b760a37db.tar.gz
libtracker-data: NB#184823, Unsupported ontology change prevent tracker for booting
-rw-r--r--data/ontologies/89-mtp.ontology2
-rw-r--r--src/libtracker-data/tracker-data-manager.c6
-rw-r--r--src/libtracker-data/tracker-db-manager.c9
-rw-r--r--src/libtracker-data/tracker-db-manager.h1
-rw-r--r--src/tracker-control/tracker-control.c2
5 files changed, 13 insertions, 7 deletions
diff --git a/data/ontologies/89-mtp.ontology b/data/ontologies/89-mtp.ontology
index 2da81bf32..3bc31b898 100644
--- a/data/ontologies/89-mtp.ontology
+++ b/data/ontologies/89-mtp.ontology
@@ -11,7 +11,7 @@
mtp: a tracker:Namespace, tracker:Ontology ;
tracker:prefix "mtp" ;
- nao:lastModified "2010-08-05T13:00:00Z" .
+ nao:lastModified "2010-08-11T16:00:00Z" .
#
# This ontology "decorates" nmm and nfo to include properties required
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index 232e55bdc..c568808ce 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -2684,7 +2684,7 @@ tracker_data_manager_init (TrackerDBManagerFlags flags,
GList *sorted = NULL, *l;
const gchar *env_path;
gint max_id = 0;
- gboolean read_only;
+ gboolean read_only, needed_reindex = FALSE;
tracker_data_update_init ();
@@ -2704,7 +2704,7 @@ tracker_data_manager_init (TrackerDBManagerFlags flags,
read_journal = FALSE;
- if (!tracker_db_manager_init (flags, &is_first_time_index, TRUE)) {
+ if (!tracker_db_manager_init (flags, &is_first_time_index, &needed_reindex, TRUE)) {
return FALSE;
}
@@ -2718,7 +2718,7 @@ tracker_data_manager_init (TrackerDBManagerFlags flags,
iface = tracker_db_manager_get_db_interface ();
- if (journal_check && is_first_time_index) {
+ if (journal_check && is_first_time_index && !needed_reindex) {
if (tracker_db_journal_reader_init (NULL)) {
if (tracker_db_journal_reader_next (NULL)) {
/* journal with at least one valid transaction
diff --git a/src/libtracker-data/tracker-db-manager.c b/src/libtracker-data/tracker-db-manager.c
index 86b710920..37ad10fde 100644
--- a/src/libtracker-data/tracker-db-manager.c
+++ b/src/libtracker-data/tracker-db-manager.c
@@ -56,7 +56,7 @@
#define TRACKER_DB_PAGE_SIZE_DONT_SET -1
/* Set current database version we are working with */
-#define TRACKER_DB_VERSION_NOW TRACKER_DB_VERSION_0_9_15
+#define TRACKER_DB_VERSION_NOW TRACKER_DB_VERSION_0_9_16
#define TRACKER_DB_VERSION_FILE "db-version.txt"
#define IN_USE_FILENAME ".meta.isrunning"
@@ -89,7 +89,8 @@ typedef enum {
TRACKER_DB_VERSION_0_8_0, /* stable release */
TRACKER_DB_VERSION_0_9_0, /* unstable release */
TRACKER_DB_VERSION_0_9_8, /* affiliation cardinality + volumes */
- TRACKER_DB_VERSION_0_9_15 /* mtp:hidden */
+ TRACKER_DB_VERSION_0_9_15, /* mtp:hidden */
+ TRACKER_DB_VERSION_0_9_16 /* Fix for NB#184823 */
} TrackerDBVersion;
typedef struct {
@@ -653,6 +654,7 @@ free_thread_interface (gpointer data)
gboolean
tracker_db_manager_init (TrackerDBManagerFlags flags,
gboolean *first_time,
+ gboolean *needed_reindex,
gboolean shared_cache)
{
GType etype;
@@ -743,6 +745,9 @@ tracker_db_manager_init (TrackerDBManagerFlags flags,
}
if (need_reindex) {
+ if (needed_reindex) {
+ *needed_reindex = TRUE;
+ }
db_set_version ();
}
diff --git a/src/libtracker-data/tracker-db-manager.h b/src/libtracker-data/tracker-db-manager.h
index 635f4f551..dd9cc5603 100644
--- a/src/libtracker-data/tracker-db-manager.h
+++ b/src/libtracker-data/tracker-db-manager.h
@@ -49,6 +49,7 @@ typedef enum {
GType tracker_db_get_type (void) G_GNUC_CONST;
gboolean tracker_db_manager_init (TrackerDBManagerFlags flags,
gboolean *first_time,
+ gboolean *needed_reindex,
gboolean shared_cache);
void tracker_db_manager_shutdown (void);
void tracker_db_manager_remove_all (gboolean rm_journal);
diff --git a/src/tracker-control/tracker-control.c b/src/tracker-control/tracker-control.c
index 3efe87184..04fb4a87d 100644
--- a/src/tracker-control/tracker-control.c
+++ b/src/tracker-control/tracker-control.c
@@ -431,7 +431,7 @@ main (int argc, char **argv)
g_object_unref (db_config);
/* Clean up */
- if (!tracker_db_manager_init (TRACKER_DB_MANAGER_REMOVE_ALL, NULL, FALSE)) {
+ if (!tracker_db_manager_init (TRACKER_DB_MANAGER_REMOVE_ALL, NULL, NULL, FALSE)) {
return EXIT_FAILURE;
}