diff options
author | Peng Wu <alexepico@gmail.com> | 2016-07-01 11:43:04 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2016-07-01 11:43:04 +0800 |
commit | 6eb0940e07f4b718e6ef395d3239761af4f3ad71 (patch) | |
tree | dc500df76675b01f475838b66839a6173f0fc698 /src/storage/phrase_large_table3_bdb.cpp | |
parent | 918007412250a180b9fa670883471636c9ba9536 (diff) | |
download | libpinyin-6eb0940e07f4b718e6ef395d3239761af4f3ad71.tar.gz libpinyin-6eb0940e07f4b718e6ef395d3239761af4f3ad71.tar.xz libpinyin-6eb0940e07f4b718e6ef395d3239761af4f3ad71.zip |
update Berkeley DB mask out methods
Diffstat (limited to 'src/storage/phrase_large_table3_bdb.cpp')
-rw-r--r-- | src/storage/phrase_large_table3_bdb.cpp | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/src/storage/phrase_large_table3_bdb.cpp b/src/storage/phrase_large_table3_bdb.cpp index a064850..cbcd40f 100644 --- a/src/storage/phrase_large_table3_bdb.cpp +++ b/src/storage/phrase_large_table3_bdb.cpp @@ -274,24 +274,8 @@ int PhraseLargeTable3::remove_index(int phrase_length, } /* mask out method */ -/* assume it is in-memory dbm. */ bool PhraseLargeTable3::mask_out(phrase_token_t mask, phrase_token_t value) { - /* use copy and sweep algorithm here. */ - DB * tmp_db = NULL; - - int ret = db_create(&tmp_db, NULL, 0); - assert(0 == ret); - - if (NULL == tmp_db) - return false; - - /* create in memory db. */ - ret = tmp_db->open(tmp_db, NULL, NULL, NULL, - DB_BTREE, DB_CREATE, 0600); - if (ret != 0) - return false; - PhraseTableEntry entry; DBC * cursorp = NULL; @@ -316,7 +300,7 @@ bool PhraseLargeTable3::mask_out(phrase_token_t mask, memset(&db_data, 0, sizeof(DBT)); db_data.data = entry.m_chunk.begin(); db_data.size = entry.m_chunk.size(); - int ret = tmp_db->put(tmp_db, NULL, &db_key, &db_data, 0); + int ret = cursorp->put(cursorp, &db_key, &db_data, 0); assert(ret == 0); } assert(ret == DB_NOTFOUND); @@ -326,9 +310,7 @@ bool PhraseLargeTable3::mask_out(phrase_token_t mask, cursorp->c_close(cursorp); m_db->sync(m_db, 0); - m_db->close(m_db, 0); - m_db = tmp_db; return true; } |