Make interpreter a library

This commit is contained in:
Yuriy Dupyn 2024-01-18 19:25:46 +01:00
parent 37f8b7be91
commit 430d092def
8 changed files with 12 additions and 16 deletions

View file

@ -1,5 +1,5 @@
use crate::internals::row::ColumnPosition; use crate::internals::row::ColumnPosition;
use crate::internals::schema::{ColumnName, TableName}; use crate::schema::{ColumnName, TableName};
use crate::operation::InsertionValues; use crate::operation::InsertionValues;
use crate::type_system::{DbType, Uuid, Value}; use crate::type_system::{DbType, Uuid, Value};

View file

@ -1,4 +1,3 @@
pub mod column_index; pub mod column_index;
pub mod row; pub mod row;
pub mod schema;
pub mod table; pub mod table;

View file

@ -3,7 +3,7 @@ use std::collections::{BTreeMap, HashMap, HashSet};
use crate::error::Error; use crate::error::Error;
use crate::internals::column_index::ColumnIndex; use crate::internals::column_index::ColumnIndex;
use crate::internals::row::{ColumnPosition, Row}; use crate::internals::row::{ColumnPosition, Row};
use crate::internals::schema::{ColumnName, TableSchema, TableName}; use crate::schema::{ColumnName, TableSchema, TableName};
use crate::result::DbResult; use crate::result::DbResult;
use crate::type_system::{IndexableValue, Uuid, Value}; use crate::type_system::{IndexableValue, Uuid, Value};

View file

@ -1,6 +1,6 @@
use crate::error::Error; use crate::error::Error;
use crate::internals::row::{ColumnPosition, Row}; use crate::internals::row::{ColumnPosition, Row};
use crate::internals::schema::{TableName, TableSchema}; use crate::schema::{TableName, TableSchema};
use crate::internals::table::Table; use crate::internals::table::Table;
use crate::operation::{ColumnSelection, Condition, Operation}; use crate::operation::{ColumnSelection, Condition, Operation};
use crate::result::DbResult; use crate::result::DbResult;

7
minisql/src/lib.rs Normal file
View file

@ -0,0 +1,7 @@
pub mod schema;
pub mod interpreter;
pub mod operation;
pub mod type_system;
mod error;
mod internals;
mod result;

View file

@ -1,10 +0,0 @@
mod error;
mod internals;
mod interpreter;
mod operation;
mod result;
mod type_system;
fn main() {
interpreter::example();
}

View file

@ -1,4 +1,4 @@
use crate::internals::schema::{ColumnName, TableName, TableSchema}; use crate::schema::{ColumnName, TableName, TableSchema};
use crate::type_system::Value; use crate::type_system::Value;
// ==============SQL operations================ // ==============SQL operations================

View file

@ -20,7 +20,7 @@ pub type TableName = String;
pub type ColumnName = String; pub type ColumnName = String;
impl TableSchema { impl TableSchema {
pub fn new(table_name: TableName, primary_key: ColumnPosition, column_name_position_map: Vec<(ColumnName, ColumnPosition)>, types: Vec<DbType>) -> Self { pub(crate) fn new(table_name: TableName, primary_key: ColumnPosition, column_name_position_map: Vec<(ColumnName, ColumnPosition)>, types: Vec<DbType>) -> Self {
let mut column_name_position_mapping: BiMap<ColumnName, ColumnPosition> = BiMap::new(); let mut column_name_position_mapping: BiMap<ColumnName, ColumnPosition> = BiMap::new();
for (column_name, column_position) in column_name_position_map { for (column_name, column_position) in column_name_position_map {
column_name_position_mapping.insert(column_name, column_position); column_name_position_mapping.insert(column_name, column_position);