From 48442cdd9e2db5000151b99779d2d0d64a9fd10b Mon Sep 17 00:00:00 2001 From: Yuriy Dupyn <2153100+omedusyo@users.noreply.github.com> Date: Mon, 5 Feb 2024 21:54:20 +0100 Subject: [PATCH] Attach index --- minisql/src/interpreter2.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/minisql/src/interpreter2.rs b/minisql/src/interpreter2.rs index 5105597..043e241 100644 --- a/minisql/src/interpreter2.rs +++ b/minisql/src/interpreter2.rs @@ -190,6 +190,7 @@ impl StateHandler { } Insert(table_position, values) => { let state = self.state.read().await; + let mut table = state.table_at_mut(table_position).await; let mut cursor = table.write().await?; @@ -200,9 +201,10 @@ impl StateHandler { } Delete(table_position, maybe_condition) => { let state = self.state.read().await; + let mut table = state.table_at_mut(table_position).await; let table_name = table.table_name().clone(); - let mut cursor = table.write().await?; + let cursor = table.write().await?; let count = match maybe_condition { None => State::delete_all_rows(table_name, cursor).await?, @@ -219,7 +221,11 @@ impl StateHandler { } CreateIndex(table_position, column) => { let state = self.state.read().await; - todo!() + + let mut table = state.table_at_mut(table_position).await; + let mut cursor = table.write().await?; + cursor.attach_index(column as storage_engine::store::Column).await.map_err(|e| RuntimeError::StorageEngineError(table.table_name().to_string(), e))?; + response_writer.write_command_complete(CompleteStatus::CreateIndex).await.map_err(|e| RuntimeError::AnyhowError(e)) } } }