1use reifydb_core::interface::{
7 catalog::{
8 id::{NamespaceId, SubscriptionId},
9 subscription::SubscriptionDef,
10 },
11 version::{ComponentType, HasVersion, SystemVersion},
12};
13use reifydb_transaction::transaction::{Transaction, admin::AdminTransaction};
14
15pub mod catalog;
16pub mod materialized;
17pub mod schema;
18pub(crate) mod store;
19pub mod system;
20pub mod test_utils;
21pub mod vtable;
22pub type Result<T> = reifydb_type::Result<T>;
24
25pub(crate) struct CatalogStore;
26
27pub fn find_subscription(txn: &mut Transaction<'_>, id: SubscriptionId) -> Result<Option<SubscriptionDef>> {
32 CatalogStore::find_subscription(txn, id)
33}
34
35pub fn delete_subscription(txn: &mut AdminTransaction, id: SubscriptionId) -> Result<()> {
40 CatalogStore::delete_subscription(txn, id)
41}
42
43pub fn delete_flow_by_name(txn: &mut AdminTransaction, namespace: NamespaceId, name: &str) -> Result<()> {
48 CatalogStore::delete_flow_by_name(txn, namespace, name)
49}
50
51pub struct CatalogVersion;
52
53impl HasVersion for CatalogVersion {
54 fn version(&self) -> SystemVersion {
55 SystemVersion {
56 name: env!("CARGO_PKG_NAME")
57 .strip_prefix("reifydb-")
58 .unwrap_or(env!("CARGO_PKG_NAME"))
59 .to_string(),
60 version: env!("CARGO_PKG_VERSION").to_string(),
61 description: "Database catalog and metadata management module".to_string(),
62 r#type: ComponentType::Module,
63 }
64 }
65}