Renaming storage_engine.rs ~> store.rs

This commit is contained in:
Yuriy Dupyn 2024-02-05 17:01:49 +01:00
parent 18b8049958
commit e0d08e758a
13 changed files with 92 additions and 13 deletions

1
Cargo.lock generated
View file

@ -288,6 +288,7 @@ dependencies = [
"bimap",
"proto",
"serde",
"storage_engine",
"thiserror",
"tokio",
]

View file

@ -14,3 +14,4 @@ serde = { version = "1.0.196", features = ["derive"] }
tokio = { version = "1.34.0", features = ["full"] }
thiserror = "1.0.50"
proto = { path = "../proto" }
storage_engine = { path = "../storage_engine" }

View file

@ -1,3 +1,79 @@
use crate::operation::{ColumnSelection, Condition, Operation};
use crate::restricted_row::RestrictedRow;
use crate::result::DbResult;
use crate::schema::{Column, TableName, TablePosition, TableSchema};
use crate::type_system::Value;
use bimap::BiMap;
use serde::{Deserialize, Serialize};
use storage_engine::store::{Store};
// ==============Interpreter================
#[derive(Debug)]
pub struct State {
table_name_position_mapping: BiMap<TableName, TablePosition>,
tables: Tables,
}
pub type Tables = Vec<Table>;
#[derive(Debug)]
pub struct Table {
schema: TableSchema,
store: Store<Value>
}
pub type DbSchema<'a> = Vec<(TableName, TablePosition, &'a TableSchema)>;
// To satisfy clippy.
impl Default for State {
fn default() -> Self {
Self::new()
}
}
impl State {
pub fn new() -> Self {
Self {
table_name_position_mapping: BiMap::new(),
tables: vec![],
}
}
pub fn db_schema(&self) -> DbSchema {
// let mut schema: DbSchema = Vec::new();
// for (table_name, &table_position) in &self.table_name_position_mapping {
// let table_schema = self.tables[table_position].schema();
// schema.push((table_name.clone(), table_position, table_schema));
// }
// schema
todo!()
}
pub async fn interpret(&mut self, operation: Operation) -> DbResult<()> {
use Operation::*;
match operation {
Select(table_position, column_selection, maybe_condition) => {
todo!()
}
Insert(table_position, values) => {
todo!()
}
Delete(table_position, maybe_condition) => {
todo!()
}
CreateTable(table_schema) => {
todo!()
}
CreateIndex(table_position, column) => {
todo!()
}
}
}
}
#[cfg(test)]
@ -8,3 +84,4 @@ mod tests {
async fn new_state() {
}
}

View file

@ -10,7 +10,7 @@ use bincode::{Decode, Encode};
use crate::segments::entry::EntryDetailed;
use crate::segments::entry_header::EntryHeader;
use crate::segments::store_header::StoreHeader;
use crate::storage_engine::{Store, FilePosition, Column, Result, ROWS_FILE_NAME, GARBAGE_COLLECTION_INTERMEDIATE_ROWS_FILE_NAME};
use crate::store::{Store, FilePosition, Column, Result, ROWS_FILE_NAME, GARBAGE_COLLECTION_INTERMEDIATE_ROWS_FILE_NAME};
use crate::index::Index;
use crate::cursor_capabilities::primitive::{CursorCanRead, CursorCanWrite};
use crate::cursor_capabilities::header_access::{CursorCanReadHeader, CursorCanWriteHeader};

View file

@ -9,7 +9,7 @@ use crate::error::{Error, DecodeErrorKind};
use crate::segments::entry::{Entry, EntryDetailed};
use crate::segments::entry_header::EntryHeaderWithDataSize;
use crate::segments::store_header::StoreHeader;
use crate::storage_engine::{FilePosition, Column, Result};
use crate::store::{FilePosition, Column, Result};
use crate::cursor_capabilities::primitive::{CursorCanRead, CursorCanWrite};
#[async_trait]

View file

@ -7,7 +7,7 @@ use bincode::{Decode, Encode};
use crate::error::Error;
use crate::segments::entry::{Entry, EntryDetailed};
use crate::storage_engine::{FilePosition, Column, Result};
use crate::store::{FilePosition, Column, Result};
use crate::index::Index;
use crate::cursor_capabilities::header_access::{CursorCanReadHeader, CursorCanWriteHeader};

View file

@ -2,7 +2,7 @@ use tokio::io::{AsyncReadExt, AsyncWriteExt, AsyncSeekExt, SeekFrom};
use tokio::fs::File;
use async_trait::async_trait;
use crate::storage_engine::{FilePosition, Result};
use crate::store::{FilePosition, Result};
#[async_trait]
pub(crate) trait CursorCanRead<T> {

View file

@ -1,4 +1,4 @@
use crate::storage_engine::Column;
use crate::store::Column;
#[derive(Debug)]
pub enum Error {

View file

@ -1,7 +1,7 @@
pub mod storage_engine;
pub mod store;
mod binary_coding;
mod error;
pub mod error;
mod index;
mod cursor;
mod segments;
mod cursor_capabilities;
pub mod cursor;
pub mod segments;
pub mod cursor_capabilities;

View file

@ -1,7 +1,7 @@
use bincode::{Decode, Encode};
use crate::binary_coding::{encode_sequence, encode_sequence_with_sizes, decode_sequence};
use crate::storage_engine::{Result, FilePosition};
use crate::store::{Result, FilePosition};
use crate::error::{Error, DecodeErrorKind};
use crate::segments::entry_header::{EntryHeader, EntryHeaderWithDataSize};

View file

@ -1,5 +1,5 @@
use crate::binary_coding::{decode, encode, decode_sequence};
use crate::storage_engine::{Result, Column};
use crate::store::{Result, Column};
use crate::error::{Error, DecodeErrorKind};
use std::mem::size_of;

View file

@ -1,5 +1,5 @@
use crate::binary_coding::{encode, encode_sequence, decode, decode_sequence};
use crate::storage_engine::{Result, Column};
use crate::store::{Result, Column};
use crate::error::{Error, DecodeErrorKind};
use std::mem::size_of;