#![allow(deprecated)]
mod branch;
mod catalog;
mod dirty_tracker;
pub mod dump;
mod engine;
mod gin_index;
mod lock_manager;
mod materialized_view;
mod mv_auto_refresh;
mod mv_delta;
mod mv_incremental;
mod mv_scheduler;
mod mv_system_views;
mod mvcc;
mod prefix_decode;
pub mod statistics;
mod stats;
pub mod time_travel;
mod transaction;
mod vector_index;
pub mod version_gc;
mod view_catalog;
mod wal;
pub mod bloom_filter;
pub mod predicate_pushdown;
pub mod simd_filter;
pub mod zone_map;
pub mod lockfree;
pub mod columnar;
pub mod compression;
pub mod conflict;
pub mod content_addr;
pub mod dictionary;
pub mod group_commit;
pub mod typed_batch;
pub mod typed_kernels;
pub mod row_cache;
pub mod art_index;
pub mod art_manager;
pub mod art_node;
pub mod index_snapshot;
pub mod columnar_zone_summary;
pub mod filter_consolidation_worker;
pub mod filter_index_delta;
pub mod parallel_filter;
pub mod speculative_filter;
pub use branch::{
BranchGcConfig, BranchGcMode, BranchId, BranchManager, BranchMetadata, BranchOptions, BranchRegistry, BranchState,
BranchStats, BranchTransaction, GitLinkMetadata, MergeConflict, MergeResult, MergeStrategy, GIT_COMMIT_PREFIX,
GIT_CONFIG_KEY, GIT_DDL_HISTORY_PREFIX, GIT_LINK_PREFIX, GIT_PR_PREFIX, GIT_SCHEMA_SNAPSHOT_PREFIX,
};
pub use catalog::Catalog;
pub use dirty_tracker::{Change, ChangeType, DirtyTracker, DirtyTrackerError};
pub use dump::{
CompressionType as DumpCompressionType, DumpManager, DumpMetadata, DumpMode, DumpOptions, DumpOutputFormat,
DumpReport, DumpType, RestoreOptions, RestoreReport,
};
pub(crate) use engine::{ColumnarAggregateOp, ColumnarAggregateSpec};
pub use engine::{DirectBulkLoadResult, StorageEngine, StorageStats, SynchronousCommitOverrideGuard};
pub use gin_index::{GinIndex, GinIndexStats};
pub use index_snapshot::{IndexOpenReport, IndexSnapshotPersistReport};
pub use lock_manager::{LockGuard, LockManager, LockState, LockType};
pub use materialized_view::{MaterializedViewCatalog, MaterializedViewMetadata};
pub use mv_auto_refresh::{AutoRefreshConfig, AutoRefreshWorker};
pub use mv_delta::{
Delta as MvDelta, DeltaOperation as MvDeltaOperation, DeltaSet as MvDeltaSet, DeltaTracker as MvDeltaTracker,
DeltaType as MvDeltaType,
};
pub use mv_incremental::{
Delta as IncDelta, DeltaOperation, DeltaSet as IncDeltaSet, DeltaTracker as IncDeltaTracker, IncrementalRefresher,
RefreshCost, RefreshResult, RefreshStrategy,
};
pub use mv_scheduler::{CpuMonitor, MVScheduler, Priority, RefreshTask, SchedulerConfig, SchedulerStats};
pub use mv_system_views::{AutoRefreshStatus, CpuUsageInfo, MvSystemViews};
pub use mvcc::{Snapshot, SnapshotId};
pub use statistics::{ColumnStatistics, StatisticsAnalyzer, StatisticsCache, TableStatistics};
pub use stats::{DatabaseStats, GlobalStatsCollector, ReplicationRole, StatsSnapshot};
pub use time_travel::{GcConfig, Scn, SnapshotManager, SnapshotMetadata, TransactionId};
pub use transaction::{Transaction, TransactionSavepointSnapshot};
pub use vector_index::{
StoredVectorRecord, StoredVectorSearchResult, VectorIndexManager, VectorIndexMetadata, VectorIndexStats,
VectorIndexType, VectorIndexUndoOp,
};
pub use version_gc::{VersionGcConfig, VersionGcCycleStats, VersionStorageStats};
pub use view_catalog::{ViewCatalog, ViewMetadata};
pub use wal::{
CleanupStats, ReplayStats, WalEntry, WalIntegrityReport, WalMetrics, WalOperation, WalSyncMode, WriteAheadLog,
};
pub use bloom_filter::{
BlockBloomFilter, BloomFilter, BloomFilterConfig, BloomFilterStats, ColumnBloomFilter, TableBloomFilters,
};
pub use predicate_pushdown::{
analyze_for_pushdown, AnalyzedPredicate, PredicateOp, PredicatePushdownManager, PushdownAnalysis, PushdownConfig,
PushdownStats,
};
pub use simd_filter::{
simd_capabilities, CombinedPredicate, FilterOp, FilterPredicate, FilterResult, SimdCapabilities, SimdFilterStats,
SimdLevel, SimdPredicateFilteringEngine,
};
pub use zone_map::{BlockZoneMap, ColumnZoneMap, RangeOp, TableZoneMap, ValueRange};
pub use columnar_zone_summary::{
BlockDecision, BlockZoneSummary, ColumnZoneSummary, Histogram, HistogramBucket, HyperLogLog, McvEntry,
SummaryMatch, TableZoneSummaries,
};
pub use filter_consolidation_worker::{
ConsolidationConfig, ConsolidationHistoryEntry, ConsolidationStats, FilterConsolidationWorker,
};
pub use filter_index_delta::{
BloomFilterDelta,
BulkLoadGuard,
BulkLoadReason,
BulkLoadResult,
FilterDelta,
FilterDeltaStats,
FilterDeltaType,
FilterIndexConfig,
FilterIndexDeltaTracker,
SuspendedTableInfo,
TableFilterDeltas,
ZoneMapDelta,
DEFAULT_BULK_LOAD_THRESHOLD,
};
pub use parallel_filter::{
AdaptiveParallelFilter, ParallelBlockScanner, ParallelFilterConfig, ParallelFilterEngine, ParallelFilterStats,
};
pub use speculative_filter::{
FilterStatus, PatternStats, PatternType, QueryPattern, QueryPatternTracker, SpeculativeConfig,
SpeculativeFilterManager, SpeculativeFilterMeta, SpeculativeFilterStats,
};
pub use lockfree::{
BatchRowIdAllocator,
BulkInsertResult,
HierarchicalRowIdGenerator,
IngestionError,
IngestionResult,
IngestionSafetyLevel,
IngestionStats,
LockFreeIngestionConfig,
LockFreeIngestionEngine,
PartitionedWalManager,
RecoveryResult,
RowIdGenerator,
TransactionBuffer,
TransactionHandle,
WalOp,
WalPartition,
WalRecord,
WalRecovery,
WriteOp,
};
pub use catalog::PersistedIndexDefinition;
pub use catalog::{PersistedSeqState, PersistedSequence, DEFAULT_SEQUENCE_CACHE};
pub use columnar::{BatchPresence, ColumnBatch, ColumnarStats, ColumnarStore, BATCH_SIZE};
pub use compression::{
ColumnCompressionMetadata, CompressionCodec, CompressionConfig, CompressionManager, CompressionStats,
};
pub use content_addr::{ContentAddressedStore, CAS_MIN_SIZE};
pub use dictionary::{ColumnDictionary, DictionaryManager, DictionaryStats};
pub use row_cache::{RowCache, RowCacheConfig, RowCacheKey, RowCacheStats};
pub use art_index::{AdaptiveRadixTree, ArtIndexError, ArtIndexStats, ArtIndexType, ArtIterator, ArtResult};
pub use art_manager::{ArtIndexManager, ArtManagerStats, ForeignKeyInfo, SharedArtIndex};
pub use art_node::{ArtNode, LeafNode, Node16, Node256, Node4, Node48, NodeHeader, RowId, MAX_PREFIX_LEN};
use crate::Value;
pub type Key = Vec<u8>;
#[derive(Debug, Clone)]
pub struct VersionedValue {
pub value: Option<Value>,
pub timestamp: u64,
pub deleted: bool,
}
impl VersionedValue {
pub fn new(value: Value, timestamp: u64) -> Self {
Self {
value: Some(value),
timestamp,
deleted: false,
}
}
pub fn tombstone(timestamp: u64) -> Self {
Self {
value: None,
timestamp,
deleted: true,
}
}
pub fn is_deleted(&self) -> bool {
self.deleted
}
}