Skip to main content

uqa_storage/
lib.rs

1//
2// Unified Query Algebra
3//
4// Copyright (c) 2023-2026 Cognica, Inc.
5//
6
7//! Persistent and in-memory backing stores for UQA: documents, inverted
8//! index, vector indexes (IVF), B-tree, in-memory spatial scan, block-max, and the
9//! provider-neutral catalog and transaction contracts.
10
11pub mod analyzer_binding;
12pub use analyzer_binding::{AnalyzerBindingOwner, BoundAnalyzerRevision, FieldAnalyzerBinding};
13
14pub mod backend;
15pub mod block_max_index;
16pub mod btree_index;
17pub mod catalog_index_keys;
18mod value_index_key;
19pub use value_index_key::{ValueIndexEntry, ValueIndexKey};
20pub mod catalog;
21pub mod clustered_postings;
22pub mod diskann_index;
23pub mod document_store;
24pub mod encryption_key;
25pub use encryption_key::StorageEncryptionKey;
26pub mod hnsw_index;
27pub mod index_abc;
28pub mod index_manager;
29pub mod index_types;
30pub mod inverted_index;
31pub mod ivf_index;
32pub mod key_value;
33pub mod mvcc;
34#[cfg(any(windows, all(unix, not(target_os = "emscripten"))))]
35#[allow(unsafe_code)]
36// Narrow OS file calls; callers retain descriptor ownership and local arbitration.
37pub mod native_file;
38pub mod notifications;
39pub mod read_control;
40mod read_only_snapshot;
41pub use read_only_snapshot::ReadOnlySnapshot;
42pub mod spatial_index;
43mod spill_map;
44pub mod statistics_maintenance;
45pub mod temporary_file;
46pub mod term_key;
47pub mod transaction;
48pub mod vector_index;
49
50pub use backend::{
51    PersistentStorageBackend, PersistentStorageIdentity, PersistentStorageProvider,
52    PersistentStorageSession, StorageBackendError, StorageBackendResult, StorageSavepointId,
53    StorageSessionAffinity, StorageSessionMismatch, StorageTransactionModel,
54};
55pub use block_max_index::{BlockMaxIndex, BlockMaxScorer, DEFAULT_BLOCK_SIZE};
56pub use btree_index::BTreeIndex;
57pub use catalog::{
58    sequence_value_allocation, sequence_value_reservation, CatalogCacheRevisions, CatalogFacade,
59    CatalogIndexRow, ColumnStatsInput, ColumnStatsRow, EdgeRow, ForeignServerRow, ForeignTableRow,
60    GraphEntityFilter, GraphEntityKind, GraphSnapshot, GraphVertexRow, RelationIdentity,
61    RelationKind, RelationSecurityRow, SchemaAclEntry, SchemaPrivileges, SchemaRow,
62    SequenceAclEntry, SequenceLogResult, SequenceOptions, SequenceOwner, SequenceOwnerDependency,
63    SequencePrivileges, SequenceReservationResult, SequenceRow, SequenceSecurityRow,
64    SequenceSetValueResult, SequenceValueAllocation, SequenceValuePosition,
65    SequenceValueReservation, TableAclEntry, TablePrivileges, TableSchema, VectorFieldSchema,
66    ViewRow, MAX_GRAPH_ID_PAGE,
67};
68pub use clustered_postings::{
69    MaterializedPostingCursor, PostingCursor, PostingScore, POSTING_CLUSTER_DOCS,
70};
71pub use document_store::{
72    DocumentMetadata, DocumentStore, MemoryDocumentStore, RetainedDocumentFields,
73    RetainedDocumentPage, RetainedDocumentStore, RetainedDocumentStoreBuilder,
74    RetainedStoredDocument, SharedDocumentRow, StoredDocument,
75};
76pub use hnsw_index::HNSWIndex;
77pub use index_abc::Index;
78pub use index_manager::{BTreeIndexHandle, IndexManager};
79pub use index_types::{IndexDef, IndexType};
80pub use inverted_index::{AnalyzerPhase, InvertedIndex, MemoryInvertedIndex};
81pub use ivf_index::{IVFIndex, IVFState};
82pub use key_value::{
83    KeyValueBatch, KeyValueCatalog, KeyValueDocumentStore, KeyValueInvertedIndex,
84    KeyValueStorageBackend, KeyValueStore, KeyValueVectorIndex, MemoryKeyValueStore,
85};
86pub use spatial_index::{haversine_distance, MemorySpatialIndex, SpatialIndex};
87pub use term_key::TokenTermKey;
88pub use transaction::{InMemoryTransaction, Snapshotable, TransactionError, TxResult};
89pub use vector_index::{
90    cosine_similarity, HNSWIndexParams, IVFIndexParams, MemoryVectorIndex, VectorIndex,
91    VectorIndexOpenMode, VectorIndexSpec,
92};
93
94mod fts_index_stat;
95pub use fts_index_stat::FtsIndexStat;