reifydb-catalog 0.4.10

Database catalog and metadata management for ReifyDB
Documentation
// SPDX-License-Identifier: Apache-2.0
// Copyright (c) 2025 ReifyDB

use reifydb_core::{
	interface::catalog::{id::SeriesId, series::Series},
	key::{Key, series::SeriesKey},
};
use reifydb_transaction::transaction::Transaction;

use crate::{CatalogStore, Result};

impl CatalogStore {
	pub(crate) fn list_series_all(rx: &mut Transaction<'_>) -> Result<Vec<Series>> {
		let mut result = Vec::new();

		let mut series_data: Vec<SeriesId> = Vec::new();
		{
			let stream = rx.range(SeriesKey::full_scan(), 1024)?;

			for entry in stream {
				let entry = entry?;
				if let Some(key) = Key::decode(&entry.key)
					&& let Key::Series(series_key) = key
				{
					series_data.push(series_key.series);
				}
			}
		}

		for series_id in series_data {
			result.push(Self::get_series(rx, series_id)?);
		}

		Ok(result)
	}
}