summaryrefslogtreecommitdiffstats
path: root/src/storage/phrase_large_table3_bdb.cpp
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2016-07-01 11:43:04 +0800
committerPeng Wu <alexepico@gmail.com>2016-07-01 11:43:04 +0800
commit6eb0940e07f4b718e6ef395d3239761af4f3ad71 (patch)
treedc500df76675b01f475838b66839a6173f0fc698 /src/storage/phrase_large_table3_bdb.cpp
parent918007412250a180b9fa670883471636c9ba9536 (diff)
downloadlibpinyin-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.cpp20
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;
}