#[cfg(all(feature = "mimalloc", not(feature = "dhat-heap")))]
#[global_allocator]
static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc;
pub mod api;
pub mod common;
pub mod core;
pub mod executor;
pub mod functions;
pub mod optimizer;
pub mod parser;
pub mod storage;
#[cfg(target_arch = "wasm32")]
pub mod wasm;
#[cfg(feature = "ffi")]
pub mod ffi;
pub use core::{
DataType, Error, IndexEntry, IndexType, IsolationLevel, Operator, Result, Row, Schema,
SchemaBuilder, SchemaColumn, Value,
};
pub use common::{BufferPool, I64Map, I64Set, PoolStats, SemVer, SmartString};
pub use storage::{
AndExpr, BetweenExpr, CastExpr, ComparisonExpr, CompoundExpr, Expression, InListExpr, NotExpr,
NullCheckExpr, OrExpr, RangeExpr,
};
pub use storage::{Config, PersistenceConfig, SyncMode};
pub use storage::{
EmptyResult, EmptyScanner, Engine, Index, MemoryResult, QueryResult, Scanner, Table,
TemporalType, Transaction, VecScanner,
};
pub use storage::{
BTreeIndex, MVCCEngine, MVCCScanner, MVCCTable, MvccTransaction, RangeScanner, RowVersion,
SingleRowScanner, TransactionEngineOperations, TransactionRegistry, TransactionState,
TransactionVersionStore, VersionStore, VisibilityChecker, WriteSetEntry,
INVALID_TRANSACTION_ID, RECOVERY_TRANSACTION_ID,
};
pub use storage::{
CheckpointMetadata, WALEntry, WALManager, WALOperationType, DEFAULT_WAL_BUFFER_SIZE,
DEFAULT_WAL_FLUSH_TRIGGER, DEFAULT_WAL_MAX_SIZE,
};
pub use storage::{
deserialize_row_version, deserialize_value, serialize_row_version, serialize_value,
serialize_value_into, IndexMetadata, PersistenceManager, PersistenceMeta,
DEFAULT_CHECKPOINT_INTERVAL, DEFAULT_KEEP_SNAPSHOTS,
};
pub use functions::{
AggregateFunction, AvgFunction, CountFunction, FirstFunction, FunctionDataType, FunctionInfo,
FunctionRegistry, FunctionSignature, FunctionType, LastFunction, MaxFunction, MinFunction,
ScalarFunction, SumFunction, WindowFunction,
};
pub use functions::{
AbsFunction, CeilingFunction, CoalesceFunction, ConcatFunction, DenseRankFunction,
FloorFunction, IfNullFunction, LagFunction, LeadFunction, LengthFunction, LowerFunction,
NowFunction, NtileFunction, NullIfFunction, RankFunction, RoundFunction, RowNumberFunction,
SubstringFunction, UpperFunction,
};
pub use executor::{
CacheStats, CachedPlanRef, CachedQueryPlan, ColumnStatsCache, ExecResult, ExecutionContext,
Executor, ExecutorResult, QueryCache, QueryPlanner, StatsHealth,
};
pub use api::{
Database, FromRow, FromValue, NamedParams, ParamVec, Params, ResultRow, Rows, Statement,
ToParam, Transaction as ApiTransaction,
};
#[cfg(any(test, feature = "test-failpoints"))]
pub mod test_failpoints;
#[cfg(test)]
mod size_tests {
#[test]
fn check_ast_sizes() {
use std::mem::size_of;
println!("\n=== AST Type Sizes ===");
println!("Token: {} bytes", size_of::<crate::parser::token::Token>());
println!(
"Identifier: {} bytes",
size_of::<crate::parser::ast::Identifier>()
);
println!(
"Expression: {} bytes",
size_of::<crate::parser::ast::Expression>()
);
println!(
"Statement: {} bytes",
size_of::<crate::parser::ast::Statement>()
);
}
}