|
|
|
@ -636,7 +636,11 @@ impl Database { |
|
|
|
|
|
|
|
|
|
|
|
if db.globals.database_version()? < 9 { |
|
|
|
if db.globals.database_version()? < 9 { |
|
|
|
// Update tokenids db layout
|
|
|
|
// Update tokenids db layout
|
|
|
|
let batch = db.rooms.tokenids.iter().filter_map(|(key, _)| { |
|
|
|
let batch = db |
|
|
|
|
|
|
|
.rooms |
|
|
|
|
|
|
|
.tokenids |
|
|
|
|
|
|
|
.iter() |
|
|
|
|
|
|
|
.filter_map(|(key, _)| { |
|
|
|
if !key.starts_with(b"!") { |
|
|
|
if !key.starts_with(b"!") { |
|
|
|
return None; |
|
|
|
return None; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -659,25 +663,33 @@ impl Database { |
|
|
|
println!("old {:?}", key); |
|
|
|
println!("old {:?}", key); |
|
|
|
println!("new {:?}", new_key); |
|
|
|
println!("new {:?}", new_key); |
|
|
|
Some((new_key, Vec::new())) |
|
|
|
Some((new_key, Vec::new())) |
|
|
|
}).collect::<Vec<_>>(); |
|
|
|
}) |
|
|
|
|
|
|
|
.collect::<Vec<_>>(); |
|
|
|
|
|
|
|
|
|
|
|
let mut iter = batch.into_iter().peekable(); |
|
|
|
let mut iter = batch.into_iter().peekable(); |
|
|
|
|
|
|
|
|
|
|
|
while iter.peek().is_some() { |
|
|
|
while iter.peek().is_some() { |
|
|
|
db.rooms.tokenids.insert_batch(&mut iter.by_ref().take(1000))?; |
|
|
|
db.rooms |
|
|
|
|
|
|
|
.tokenids |
|
|
|
|
|
|
|
.insert_batch(&mut iter.by_ref().take(1000))?; |
|
|
|
println!("smaller batch done"); |
|
|
|
println!("smaller batch done"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
println!("Deleting starts"); |
|
|
|
println!("Deleting starts"); |
|
|
|
|
|
|
|
|
|
|
|
let batch2 = db.rooms.tokenids.iter().filter_map(|(key, _)| { |
|
|
|
let batch2 = db |
|
|
|
|
|
|
|
.rooms |
|
|
|
|
|
|
|
.tokenids |
|
|
|
|
|
|
|
.iter() |
|
|
|
|
|
|
|
.filter_map(|(key, _)| { |
|
|
|
if key.starts_with(b"!") { |
|
|
|
if key.starts_with(b"!") { |
|
|
|
println!("del {:?}", key); |
|
|
|
println!("del {:?}", key); |
|
|
|
Some(key) |
|
|
|
Some(key) |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
None |
|
|
|
None |
|
|
|
} |
|
|
|
} |
|
|
|
}).collect::<Vec<_>>(); |
|
|
|
}) |
|
|
|
|
|
|
|
.collect::<Vec<_>>(); |
|
|
|
|
|
|
|
|
|
|
|
for key in batch2 { |
|
|
|
for key in batch2 { |
|
|
|
println!("del"); |
|
|
|
println!("del"); |
|
|
|
|