diff --git a/core/lib.rs b/core/lib.rs index 56e6a08cf..1b49cf5f4 100644 --- a/core/lib.rs +++ b/core/lib.rs @@ -3,10 +3,8 @@ mod datetime; mod error; mod function; mod io; -mod pager; mod pseudo; mod schema; -mod sqlite3_ondisk; mod storage; mod translate; mod types; @@ -20,12 +18,12 @@ static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; use fallible_iterator::FallibleIterator; use log::trace; -use pager::Pager; use schema::Schema; -use sqlite3_ondisk::DatabaseHeader; use sqlite3_parser::{ast::Cmd, lexer::sql::Parser}; use std::sync::Arc; use std::{cell::RefCell, rc::Rc}; +use storage::pager::Pager; +use storage::sqlite3_ondisk::DatabaseHeader; pub use error::LimboError; pub type Result = std::result::Result; diff --git a/core/storage/btree.rs b/core/storage/btree.rs index 4e5e93b50..95ae7b7b3 100644 --- a/core/storage/btree.rs +++ b/core/storage/btree.rs @@ -1,5 +1,5 @@ -use crate::pager::{Page, Pager}; -use crate::sqlite3_ondisk::{ +use crate::storage::pager::{Page, Pager}; +use crate::storage::sqlite3_ondisk::{ read_varint, write_varint, BTreeCell, DatabaseHeader, PageContent, PageType, TableInteriorCell, TableLeafCell, }; @@ -124,7 +124,7 @@ impl BTreeCursor { first_overflow_page: _, }) => { mem_page.advance(); - let record = crate::sqlite3_ondisk::read_record(_payload)?; + let record = crate::storage::sqlite3_ondisk::read_record(_payload)?; return Ok(CursorResult::Ok((Some(*_rowid), Some(record)))); } BTreeCell::IndexInteriorCell(_) => { diff --git a/core/storage/mod.rs b/core/storage/mod.rs index 2e320698a..56b57234f 100644 --- a/core/storage/mod.rs +++ b/core/storage/mod.rs @@ -1,4 +1,6 @@ pub(crate) mod btree; +pub(crate) mod pager; +pub(crate) mod sqlite3_ondisk; #[cfg(feature = "fs")] use crate::io::File; diff --git a/core/pager.rs b/core/storage/pager.rs similarity index 99% rename from core/pager.rs rename to core/storage/pager.rs index 24a023c3f..db07e85db 100644 --- a/core/pager.rs +++ b/core/storage/pager.rs @@ -1,6 +1,5 @@ use crate::buffer_pool::BufferPool; -use crate::sqlite3_ondisk::PageContent; -use crate::sqlite3_ondisk::{self, DatabaseHeader}; +use crate::storage::sqlite3_ondisk::{self, DatabaseHeader, PageContent}; use crate::wal::Wal; use crate::{Buffer, PageSource, Result}; use log::trace; diff --git a/core/sqlite3_ondisk.rs b/core/storage/sqlite3_ondisk.rs similarity index 99% rename from core/sqlite3_ondisk.rs rename to core/storage/sqlite3_ondisk.rs index b01ed4ab2..73f619a9e 100644 --- a/core/sqlite3_ondisk.rs +++ b/core/storage/sqlite3_ondisk.rs @@ -44,7 +44,7 @@ use crate::buffer_pool::BufferPool; use crate::error::LimboError; use crate::io::{Buffer, Completion, ReadCompletion, WriteCompletion}; -use crate::pager::{Page, Pager}; +use crate::storage::pager::{Page, Pager}; use crate::types::{OwnedRecord, OwnedValue}; use crate::{File, PageSource, Result}; use log::trace; diff --git a/core/translate/insert.rs b/core/translate/insert.rs index a54c3a2ce..a4949f00c 100644 --- a/core/translate/insert.rs +++ b/core/translate/insert.rs @@ -7,7 +7,7 @@ use sqlite3_parser::ast::{ use crate::Result; use crate::{ schema::{Schema, Table}, - sqlite3_ondisk::DatabaseHeader, + storage::sqlite3_ondisk::DatabaseHeader, translate::expr::translate_expr, vdbe::{builder::ProgramBuilder, Insn, Program}, }; diff --git a/core/translate/mod.rs b/core/translate/mod.rs index 280cbc372..5a21fee4c 100644 --- a/core/translate/mod.rs +++ b/core/translate/mod.rs @@ -15,9 +15,9 @@ pub(crate) mod where_clause; use std::cell::RefCell; use std::rc::Rc; -use crate::pager::Pager; use crate::schema::Schema; -use crate::sqlite3_ondisk::{DatabaseHeader, MIN_PAGE_CACHE_SIZE}; +use crate::storage::pager::Pager; +use crate::storage::sqlite3_ondisk::{DatabaseHeader, MIN_PAGE_CACHE_SIZE}; use crate::util::normalize_ident; use crate::vdbe::{builder::ProgramBuilder, Insn, Program}; use crate::{bail_parse_error, Result}; diff --git a/core/translate/select.rs b/core/translate/select.rs index 154b91be5..f218eee8f 100644 --- a/core/translate/select.rs +++ b/core/translate/select.rs @@ -1,6 +1,6 @@ use crate::function::{AggFunc, Func}; use crate::schema::{Column, PseudoTable, Schema, Table}; -use crate::sqlite3_ondisk::DatabaseHeader; +use crate::storage::sqlite3_ondisk::DatabaseHeader; use crate::translate::expr::{analyze_columns, maybe_apply_affinity, translate_expr}; use crate::translate::where_clause::{ process_where, translate_processed_where, translate_tableless_where, ProcessedWhereClause, diff --git a/core/types.rs b/core/types.rs index 67d4162cc..328acb39d 100644 --- a/core/types.rs +++ b/core/types.rs @@ -4,7 +4,7 @@ use std::{cell::Ref, rc::Rc}; use crate::error::LimboError; use crate::Result; -use crate::sqlite3_ondisk::write_varint; +use crate::storage::sqlite3_ondisk::write_varint; #[derive(Debug, Clone, PartialEq)] pub enum Value<'a> { diff --git a/core/vdbe/builder.rs b/core/vdbe/builder.rs index 101177a4d..7b3699a04 100644 --- a/core/vdbe/builder.rs +++ b/core/vdbe/builder.rs @@ -1,6 +1,6 @@ use std::{cell::RefCell, rc::Rc}; -use crate::sqlite3_ondisk::DatabaseHeader; +use crate::storage::sqlite3_ondisk::DatabaseHeader; use super::{BranchOffset, CursorID, Insn, InsnReference, Program, Table}; diff --git a/core/vdbe/mod.rs b/core/vdbe/mod.rs index d70ed1a7b..69190dfe8 100644 --- a/core/vdbe/mod.rs +++ b/core/vdbe/mod.rs @@ -24,11 +24,10 @@ pub mod sorter; use crate::datetime::{get_date_from_time_value, get_time_from_datetime_value}; use crate::error::LimboError; use crate::function::{AggFunc, ScalarFunc}; -use crate::pager::Pager; use crate::pseudo::PseudoCursor; use crate::schema::Table; -use crate::sqlite3_ondisk::DatabaseHeader; -use crate::storage::btree::BTreeCursor; +use crate::storage::sqlite3_ondisk::DatabaseHeader; +use crate::storage::{btree::BTreeCursor, pager::Pager}; use crate::types::{AggContext, Cursor, CursorResult, OwnedRecord, OwnedValue, Record}; use crate::Result; diff --git a/core/wal.rs b/core/wal.rs index cadcb275e..b25a8acbd 100644 --- a/core/wal.rs +++ b/core/wal.rs @@ -1,6 +1,6 @@ use std::{cell::RefCell, rc::Rc}; -use crate::{pager::Page, Result}; +use crate::{storage::pager::Page, Result}; /// Write-ahead log (WAL). pub struct Wal {}