From 307cd71b1177b3075483a0c1e5bad1c50bf1f580 Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Thu, 1 Aug 2024 11:37:20 +0300 Subject: [PATCH 1/5] core: Rename storage.rs to storage/mod.rs Prepare for moving more code under storage module. --- core/{storage.rs => storage/mod.rs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename core/{storage.rs => storage/mod.rs} (100%) diff --git a/core/storage.rs b/core/storage/mod.rs similarity index 100% rename from core/storage.rs rename to core/storage/mod.rs From 7abc48303f25eff876bd9a9dc4eafd22669819a9 Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Thu, 1 Aug 2024 11:38:27 +0300 Subject: [PATCH 2/5] core: Move btree.rs to storage module --- core/lib.rs | 1 - core/{ => storage}/btree.rs | 0 core/storage/mod.rs | 2 ++ core/vdbe/mod.rs | 2 +- 4 files changed, 3 insertions(+), 2 deletions(-) rename core/{ => storage}/btree.rs (100%) diff --git a/core/lib.rs b/core/lib.rs index be94d17a1..56e6a08cf 100644 --- a/core/lib.rs +++ b/core/lib.rs @@ -1,4 +1,3 @@ -mod btree; mod buffer_pool; mod datetime; mod error; diff --git a/core/btree.rs b/core/storage/btree.rs similarity index 100% rename from core/btree.rs rename to core/storage/btree.rs diff --git a/core/storage/mod.rs b/core/storage/mod.rs index 54cab056f..2e320698a 100644 --- a/core/storage/mod.rs +++ b/core/storage/mod.rs @@ -1,3 +1,5 @@ +pub(crate) mod btree; + #[cfg(feature = "fs")] use crate::io::File; use crate::{error::LimboError, io::Completion, Buffer, Result}; diff --git a/core/vdbe/mod.rs b/core/vdbe/mod.rs index 9213a062c..d70ed1a7b 100644 --- a/core/vdbe/mod.rs +++ b/core/vdbe/mod.rs @@ -21,7 +21,6 @@ pub mod builder; pub mod explain; pub mod sorter; -use crate::btree::BTreeCursor; use crate::datetime::{get_date_from_time_value, get_time_from_datetime_value}; use crate::error::LimboError; use crate::function::{AggFunc, ScalarFunc}; @@ -29,6 +28,7 @@ use crate::pager::Pager; use crate::pseudo::PseudoCursor; use crate::schema::Table; use crate::sqlite3_ondisk::DatabaseHeader; +use crate::storage::btree::BTreeCursor; use crate::types::{AggContext, Cursor, CursorResult, OwnedRecord, OwnedValue, Record}; use crate::Result; From f8a43361db213bf13adab0140cdef50e6607e9d5 Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Thu, 1 Aug 2024 11:39:53 +0300 Subject: [PATCH 3/5] core: Move pager.rs to storage module --- core/lib.rs | 6 ++---- core/storage/btree.rs | 6 +++--- core/storage/mod.rs | 2 ++ core/{ => storage}/pager.rs | 3 +-- core/{ => storage}/sqlite3_ondisk.rs | 2 +- core/translate/insert.rs | 2 +- core/translate/mod.rs | 4 ++-- core/translate/select.rs | 2 +- core/types.rs | 2 +- core/vdbe/builder.rs | 2 +- core/vdbe/mod.rs | 5 ++--- core/wal.rs | 2 +- 12 files changed, 18 insertions(+), 20 deletions(-) rename core/{ => storage}/pager.rs (99%) rename core/{ => storage}/sqlite3_ondisk.rs (99%) 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 {} From ed1c23bfe602d5361ac05ce7dd99e45633929920 Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Thu, 1 Aug 2024 11:44:25 +0300 Subject: [PATCH 4/5] core: Move wal.rs to storage module --- core/lib.rs | 1 - core/storage/mod.rs | 1 + core/storage/pager.rs | 2 +- core/{ => storage}/wal.rs | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename core/{ => storage}/wal.rs (100%) diff --git a/core/lib.rs b/core/lib.rs index 1b49cf5f4..0b31f55d6 100644 --- a/core/lib.rs +++ b/core/lib.rs @@ -10,7 +10,6 @@ mod translate; mod types; mod util; mod vdbe; -mod wal; #[cfg(not(target_family = "wasm"))] #[global_allocator] diff --git a/core/storage/mod.rs b/core/storage/mod.rs index 56b57234f..bf080a01e 100644 --- a/core/storage/mod.rs +++ b/core/storage/mod.rs @@ -1,6 +1,7 @@ pub(crate) mod btree; pub(crate) mod pager; pub(crate) mod sqlite3_ondisk; +pub(crate) mod wal; #[cfg(feature = "fs")] use crate::io::File; diff --git a/core/storage/pager.rs b/core/storage/pager.rs index db07e85db..93e3a2b38 100644 --- a/core/storage/pager.rs +++ b/core/storage/pager.rs @@ -1,6 +1,6 @@ use crate::buffer_pool::BufferPool; use crate::storage::sqlite3_ondisk::{self, DatabaseHeader, PageContent}; -use crate::wal::Wal; +use crate::storage::wal::Wal; use crate::{Buffer, PageSource, Result}; use log::trace; use sieve_cache::SieveCache; diff --git a/core/wal.rs b/core/storage/wal.rs similarity index 100% rename from core/wal.rs rename to core/storage/wal.rs From 0bf12ec1b3cd1c3dce8bbdf9f6bf29e3cfc75a60 Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Thu, 1 Aug 2024 11:45:41 +0300 Subject: [PATCH 5/5] core: Move buffer_pool.rs to storage module --- core/lib.rs | 1 - core/{ => storage}/buffer_pool.rs | 0 core/storage/mod.rs | 1 + core/storage/pager.rs | 2 +- core/storage/sqlite3_ondisk.rs | 2 +- 5 files changed, 3 insertions(+), 3 deletions(-) rename core/{ => storage}/buffer_pool.rs (100%) diff --git a/core/lib.rs b/core/lib.rs index 0b31f55d6..255575fb5 100644 --- a/core/lib.rs +++ b/core/lib.rs @@ -1,4 +1,3 @@ -mod buffer_pool; mod datetime; mod error; mod function; diff --git a/core/buffer_pool.rs b/core/storage/buffer_pool.rs similarity index 100% rename from core/buffer_pool.rs rename to core/storage/buffer_pool.rs diff --git a/core/storage/mod.rs b/core/storage/mod.rs index bf080a01e..894170d63 100644 --- a/core/storage/mod.rs +++ b/core/storage/mod.rs @@ -1,4 +1,5 @@ pub(crate) mod btree; +pub(crate) mod buffer_pool; pub(crate) mod pager; pub(crate) mod sqlite3_ondisk; pub(crate) mod wal; diff --git a/core/storage/pager.rs b/core/storage/pager.rs index 93e3a2b38..f7ead07a9 100644 --- a/core/storage/pager.rs +++ b/core/storage/pager.rs @@ -1,4 +1,4 @@ -use crate::buffer_pool::BufferPool; +use crate::storage::buffer_pool::BufferPool; use crate::storage::sqlite3_ondisk::{self, DatabaseHeader, PageContent}; use crate::storage::wal::Wal; use crate::{Buffer, PageSource, Result}; diff --git a/core/storage/sqlite3_ondisk.rs b/core/storage/sqlite3_ondisk.rs index 73f619a9e..79a411d74 100644 --- a/core/storage/sqlite3_ondisk.rs +++ b/core/storage/sqlite3_ondisk.rs @@ -41,9 +41,9 @@ //! //! https://www.sqlite.org/fileformat.html -use crate::buffer_pool::BufferPool; use crate::error::LimboError; use crate::io::{Buffer, Completion, ReadCompletion, WriteCompletion}; +use crate::storage::buffer_pool::BufferPool; use crate::storage::pager::{Page, Pager}; use crate::types::{OwnedRecord, OwnedValue}; use crate::{File, PageSource, Result};