mirror of
https://github.com/typesense/typesense.git
synced 2025-05-18 20:52:50 +08:00
Sort by string: fix deletion of large no. elements.
This commit is contained in:
parent
787130cd06
commit
61e5d292df
@ -7,8 +7,8 @@
|
||||
//std::set<adi_node_t*> nodes;
|
||||
|
||||
struct adi_node_t {
|
||||
uint16_t scions;
|
||||
uint16_t num_children;
|
||||
uint32_t scions;
|
||||
char* chars;
|
||||
adi_node_t** children;
|
||||
|
||||
@ -251,7 +251,8 @@ void adi_tree_t::remove(uint32_t id) {
|
||||
std::vector<adi_node_t*> path;
|
||||
auto leaf_node = get_node(root, key, 0, path);
|
||||
|
||||
//LOG(INFO) << "Removing key: " << key;
|
||||
//LOG(INFO) << "Removing key: " << key << ", seq_id: " << id << ", id_keys.size: " << id_keys.size()
|
||||
// << ", root.num_children: " << root->num_children;
|
||||
|
||||
if(leaf_node != nullptr) {
|
||||
remove_node(root, key, 0);
|
||||
|
@ -105,3 +105,16 @@ TEST_F(ADITreeTest, InsertDuplicateAndDelete) {
|
||||
|
||||
ASSERT_EQ(nullptr, tree.get_root());
|
||||
}
|
||||
|
||||
TEST_F(ADITreeTest, InsertDeleteManyElements) {
|
||||
adi_tree_t tree;
|
||||
size_t num_elements = UINT16_MAX + 100;
|
||||
|
||||
for(size_t i = 0; i < num_elements; i++) {
|
||||
tree.index(i, "key");
|
||||
}
|
||||
|
||||
for(size_t i = 0; i < num_elements; i++) {
|
||||
tree.remove(i);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user