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.