Skip to content

Commit b346b26

Browse files
committed
add method to iterate over namespaces
1 parent 4fa73a5 commit b346b26

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

libsql-server/src/namespace/meta_store.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use std::{collections::HashMap, fs::read_dir};
66
use bottomless::bottomless_wal::BottomlessWalWrapper;
77
use bottomless::replicator::CompressionKind;
88
use bottomless::SavepointTracker;
9+
use futures::Stream;
910
use futures_core::Future;
1011
use libsql_replication::rpc::metadata;
1112
use libsql_sys::wal::{
@@ -608,6 +609,24 @@ impl MetaStore {
608609
}
609610
None
610611
}
612+
613+
/// returns an iterator over all manespaces config handles
614+
pub(crate) fn namespaces(&self) -> impl Stream<Item = MetaStoreHandle> + '_ {
615+
async_stream::stream! {
616+
let lock = self.inner.configs.lock().await;
617+
for (ns, sender) in lock.iter() {
618+
let change_tx = self.changes_tx.clone();
619+
620+
621+
let handle = MetaStoreHandle {
622+
namespace: ns.clone(),
623+
inner: HandleState::External(change_tx, sender.subscribe()),
624+
};
625+
626+
yield handle;
627+
}
628+
}
629+
}
611630
}
612631

613632
impl MetaStoreHandle {

0 commit comments

Comments
 (0)