gluesql_shared_memory_storage/
alter_table.rs1use {
2 super::SharedMemoryStorage,
3 async_trait::async_trait,
4 gluesql_core::{ast::ColumnDef, error::Result, store::AlterTable},
5 std::sync::Arc,
6};
7
8#[async_trait]
9impl AlterTable for SharedMemoryStorage {
10 async fn rename_schema(&mut self, table_name: &str, new_table_name: &str) -> Result<()> {
11 let database = Arc::clone(&self.database);
12 let mut database = database.write().await;
13
14 database.rename_schema(table_name, new_table_name).await
15 }
16
17 async fn rename_column(
18 &mut self,
19 table_name: &str,
20 old_column_name: &str,
21 new_column_name: &str,
22 ) -> Result<()> {
23 let database = Arc::clone(&self.database);
24 let mut database = database.write().await;
25
26 database
27 .rename_column(table_name, old_column_name, new_column_name)
28 .await
29 }
30
31 async fn add_column(&mut self, table_name: &str, column_def: &ColumnDef) -> Result<()> {
32 let database = Arc::clone(&self.database);
33 let mut database = database.write().await;
34
35 database.add_column(table_name, column_def).await
36 }
37
38 async fn drop_column(
39 &mut self,
40 table_name: &str,
41 column_name: &str,
42 if_exists: bool,
43 ) -> Result<()> {
44 let database = Arc::clone(&self.database);
45 let mut database = database.write().await;
46
47 database
48 .drop_column(table_name, column_name, if_exists)
49 .await
50 }
51}