no mo glue
parent
8ce43b449d
commit
71405ab25f
File diff suppressed because it is too large
Load Diff
|
|
@ -5,4 +5,3 @@ edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
futures = "0.3.31"
|
futures = "0.3.31"
|
||||||
gluesql = { version = "0.16.3", features = ["gluesql_memory_storage"] }
|
|
||||||
|
|
|
||||||
|
|
@ -1,52 +1,28 @@
|
||||||
mod main {
|
mod main {
|
||||||
use {
|
use {
|
||||||
gluesql::{
|
|
||||||
gluesql_memory_storage::MemoryStorage,
|
|
||||||
prelude::Glue,
|
|
||||||
core::store::{GStore, GStoreMut},
|
|
||||||
core::ast::Statement,
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn run() {
|
pub fn run() {
|
||||||
let mut db = DB::new(Glue::new(MemoryStorage::default()));
|
let mut db = DB::new(false);
|
||||||
db.init().expect("db init failed");
|
db.init().expect("db init failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
struct DB<T: GStore + GStoreMut> {
|
struct DB {
|
||||||
db: Glue<T>,
|
db: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T: GStore + GStoreMut> DB<T> {
|
impl DB {
|
||||||
fn new(db: Glue<T>) -> DB<T> {
|
fn new(db: bool) -> DB {
|
||||||
DB{db: db}
|
DB{db: db}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn init(self: &mut DB<T>) -> Result<(), String> {
|
fn init(self: &mut DB) -> Result<(), String> {
|
||||||
self.exec("DROP TABLE IF EXISTS t")?;
|
//self.exec("DROP TABLE IF EXISTS t")?;
|
||||||
self.exec("DROP TABLE IF EXISTS t2")?;
|
//self.exec("DROP TABLE IF EXISTS t2")?;
|
||||||
self.exec("CREATE TABLE t (id INTEGER PRIMARY KEY, k TEXT, v TEXT)")?;
|
//self.exec("CREATE TABLE t (id INTEGER PRIMARY KEY, k TEXT, v TEXT)")?;
|
||||||
self.exec("CREATE TABLE t2 (id INTEGER PRIMARY KEY, t_id INTEGER, FOREIGN KEY (t_id) REFERENCES t (id))")?;
|
//self.exec("CREATE TABLE t2 (id INTEGER PRIMARY KEY, t_id INTEGER, FOREIGN KEY (t_id) REFERENCES t (id))")?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn exec(self: &mut DB<T>, q: &str) -> Result<(), String> {
|
|
||||||
futures::executor::block_on(async {
|
|
||||||
match self.db.execute(q).await {
|
|
||||||
Ok(_) => Ok(()),
|
|
||||||
Err(err) => Err(err.to_string())
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
fn insert(self: &mut DB<T>, q: &str) -> Result<(), String> {
|
|
||||||
futures::executor::block_on(async {
|
|
||||||
match self.db.execute(q).await {
|
|
||||||
Ok(_) => Ok(()),
|
|
||||||
Err(err) => Err(err.to_string())
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue