tracker r1974 - in branches/indexer-split: . src/tracker-indexer tests/tracker-indexer
- From: ifrade svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r1974 - in branches/indexer-split: . src/tracker-indexer tests/tracker-indexer
- Date: Thu, 31 Jul 2008 18:12:25 +0000 (UTC)
Author: ifrade
Date: Thu Jul 31 18:12:25 2008
New Revision: 1974
URL: http://svn.gnome.org/viewvc/tracker?rev=1974&view=rev
Log:
Fixed word deletion before flush
Modified:
branches/indexer-split/ChangeLog
branches/indexer-split/src/tracker-indexer/tracker-index.c
branches/indexer-split/tests/tracker-indexer/tracker-index-test.c
Modified: branches/indexer-split/src/tracker-indexer/tracker-index.c
==============================================================================
--- branches/indexer-split/src/tracker-indexer/tracker-index.c (original)
+++ branches/indexer-split/src/tracker-indexer/tracker-index.c Thu Jul 31 18:12:25 2008
@@ -138,8 +138,15 @@
if (current->id == service_id) {
/* The word was already found in the same service_id (file), increase score */
new_score = tracker_index_item_get_score (current) + weight;
- current->amalgamated = tracker_index_item_calc_amalgamated (tracker_index_item_get_service_type (current),
- new_score);
+ if (new_score < 1) {
+ array = g_array_remove_index (array, i);
+ if (array->len == 0) {
+ g_hash_table_remove (index->cache, word);
+ }
+ } else {
+ current->amalgamated = tracker_index_item_calc_amalgamated (tracker_index_item_get_service_type (current),
+ new_score);
+ }
return;
}
}
Modified: branches/indexer-split/tests/tracker-indexer/tracker-index-test.c
==============================================================================
--- branches/indexer-split/tests/tracker-indexer/tracker-index-test.c (original)
+++ branches/indexer-split/tests/tracker-indexer/tracker-index-test.c Thu Jul 31 18:12:25 2008
@@ -301,6 +301,33 @@
g_remove (indexname);
}
+static void
+test_remove_before_flush (void)
+{
+ TrackerIndex *index;
+ const gchar *indexname = "test-remove-before-flush.index";
+ gint id1;
+
+ const gchar *doc1 = "this is a text";
+
+ g_remove (indexname);
+
+ index = tracker_index_new (indexname, BUCKET_COUNT);
+
+ /* Doc 1 */
+ id1 = insert_in_index (index, doc1);
+
+ /* Remove before flush */
+ remove_in_index (index, doc1, id1);
+
+ tracker_index_flush (index);
+
+ tracker_index_free (index);
+
+ g_assert_cmpint (get_number_words_in_index (indexname), ==, 0);
+
+ g_remove (indexname);
+}
int
main (int argc, char **argv) {
@@ -328,6 +355,9 @@
g_test_add_func ("/tracker/tracker-indexer/tracker-index/remove_document",
test_remove_document);
+ g_test_add_func ("/tracker/tracker-indexer/tracker-index/remove_before_flush",
+ test_remove_before_flush);
+
result = g_test_run ();
return result;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]