From c467718af4e0ba7bfcf162f690fb49a1b4d2621b Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Tue, 28 Aug 2012 10:56:12 +0800 Subject: begin to write add/remove index --- src/storage/phrase_large_table2.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/storage/phrase_large_table2.cpp b/src/storage/phrase_large_table2.cpp index 4a0d969..e42b530 100644 --- a/src/storage/phrase_large_table2.cpp +++ b/src/storage/phrase_large_table2.cpp @@ -257,3 +257,30 @@ int PhraseArrayIndexLevel2::search return result; } +int PhraseBitmapIndexLevel2::add_index(int phrase_length, + /* in */ ucs4_t phrase[], + /* in */ phrase_token_t token){ + guint8 first_key = (phrase[0] & 0xFF00) >> 8; + + PhraseLengthIndexLevel2 * & length_array = + m_phrase_length_indexes[first_key]; + + if ( !length_array ){ + length_array = new PhraseLengthIndexLevel2(); + } + return length_array->add_index(phrase_length, phrase, token); +} + +int PhraseBitmapIndexLevel2::remove_index(int phrase_length, + /* in */ ucs4_t phrase[], + /* in */ phrase_token_t token){ + guint8 first_key = (phrase[0] & 0xFF00) >> 8; + + PhraseLengthIndexLevel2 * & length_array = + m_phrase_length_indexes[first_key]; + + if ( length_array ) + return length_array->remove_index(phrase_length, phrase, token); + + return ERROR_REMOVE_ITEM_DONOT_EXISTS; +} -- cgit