From ec0a4f25108a029f619e65ff50558687fb69d5bf Mon Sep 17 00:00:00 2001 From: Yuriy Dupyn <2153100+omedusyo@users.noreply.github.com> Date: Sun, 28 Jan 2024 18:43:53 +0100 Subject: [PATCH] Move TablePosition into schema --- minisql/src/interpreter.rs | 3 +-- minisql/src/operation.rs | 3 +-- minisql/src/schema.rs | 1 + parser/src/validation.rs | 4 ++-- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/minisql/src/interpreter.rs b/minisql/src/interpreter.rs index b019054..7e9b293 100644 --- a/minisql/src/interpreter.rs +++ b/minisql/src/interpreter.rs @@ -1,4 +1,4 @@ -use crate::schema::{Column, TableName, TableSchema}; +use crate::schema::{Column, TableName, TablePosition, TableSchema}; use crate::internals::table::Table; use crate::operation::{Operation, Condition}; use crate::result::DbResult; @@ -8,7 +8,6 @@ use crate::restricted_row::RestrictedRow; // Use `TablePosition` as index pub type Tables = Vec; -pub type TablePosition = usize; // ==============Interpreter================ #[derive(Debug, Serialize, Deserialize)] diff --git a/minisql/src/operation.rs b/minisql/src/operation.rs index 6448385..b774663 100644 --- a/minisql/src/operation.rs +++ b/minisql/src/operation.rs @@ -1,6 +1,5 @@ -use crate::schema::{Column, TableSchema}; +use crate::schema::{Column, TablePosition, TableSchema}; use crate::type_system::Value; -use crate::interpreter::TablePosition; // Validated operation. Constructed by validation crate. #[derive(Debug, PartialEq)] diff --git a/minisql/src/schema.rs b/minisql/src/schema.rs index 7b16656..314eae9 100644 --- a/minisql/src/schema.rs +++ b/minisql/src/schema.rs @@ -16,6 +16,7 @@ pub struct TableSchema { } pub type TableName = String; +pub type TablePosition = usize; pub type ColumnName = String; pub type Column = usize; diff --git a/parser/src/validation.rs b/parser/src/validation.rs index abeeb86..a52ff27 100644 --- a/parser/src/validation.rs +++ b/parser/src/validation.rs @@ -4,7 +4,7 @@ use thiserror::Error; use crate::syntax; use crate::syntax::{RawTableSchema, ColumnSchema, RawQuerySyntax}; use minisql::operation; -use minisql::{operation::Operation, type_system::Value, schema::{TableSchema, ColumnName, TableName}, type_system::DbType, interpreter::{TablePosition, DbSchema}}; +use minisql::{operation::Operation, type_system::Value, schema::{TableSchema, ColumnName, Column, TableName, TablePosition}, type_system::DbType, interpreter::DbSchema}; #[derive(Debug, Error)] pub enum ValidationError { @@ -158,7 +158,7 @@ fn validate_insert(table_name: TableName, insertion_values: syntax::InsertionVal } // Check types and prepare for creation of InsertionValues for the interpreter - let mut values_map: BTreeMap<_, Value> = BTreeMap::new(); // The reason for using BTreeMap + let mut values_map: BTreeMap = BTreeMap::new(); // The reason for using BTreeMap // instead of HashMap is that we need // to get the values in a vector // sorted by the key.