diff --git a/.gitignore b/.gitignore index 29856e87..0585f4af 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,16 @@ Cargo.lock **/*.rs.bk _path* -*.db \ No newline at end of file +*.db### CMake template +CMakeLists.txt.user +CMakeCache.txt +CMakeFiles +CMakeScripts +Testing +Makefile +cmake_install.cmake +install_manifest.txt +compile_commands.json +CTestTestfile.cmake +_deps + diff --git a/.idea/.name b/.idea/.name deleted file mode 100644 index 56aeb597..00000000 --- a/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -rocksdb \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 0e7ba259..e1f265e1 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/cozo-rocks/src/cozorocks.cc b/cozo-rocks/src/cozorocks.cc index ceeefbad..2c7e4651 100644 --- a/cozo-rocks/src/cozorocks.cc +++ b/cozo-rocks/src/cozorocks.cc @@ -9,5 +9,4 @@ void write_status_impl(Status &status, StatusCode code, StatusSubCode subcode, S status.code = code; status.subcode = subcode; status.severity = severity; - } \ No newline at end of file diff --git a/cozo-rocks/src/cozorocks.h b/cozo-rocks/src/cozorocks.h index ae9b33e3..a3f3e577 100644 --- a/cozo-rocks/src/cozorocks.h +++ b/cozo-rocks/src/cozorocks.h @@ -21,7 +21,7 @@ typedef RDB::Status::Code StatusCode; typedef RDB::Status::SubCode StatusSubCode; typedef RDB::Status::Severity StatusSeverity; -std::unique_ptr new_db(); +std::unique_ptr new_db(); struct ReadOptionsBridge { mutable RDB::ReadOptions inner; @@ -38,19 +38,21 @@ public: typedef rust::Fn, rust::Slice)> RustComparatorFn; -class RustComparator: public RDB::Comparator { +class RustComparator : public RDB::Comparator { public: - inline int Compare(const rocksdb::Slice& a, const rocksdb::Slice& b ) const { + inline int Compare(const rocksdb::Slice &a, const rocksdb::Slice &b) const { auto ra = rust::Slice(reinterpret_cast(a.data()), a.size()); auto rb = rust::Slice(reinterpret_cast(b.data()), b.size()); return int(rust_compare(ra, rb)); } - const char* Name() const { + const char *Name() const { return "RustComparator"; } - void FindShortestSeparator(std::string*, const rocksdb::Slice&) const { } - void FindShortSuccessor(std::string*) const { } + + void FindShortestSeparator(std::string *, const rocksdb::Slice &) const {} + + void FindShortSuccessor(std::string *) const {} void set_fn(RustComparatorFn f) const { rust_compare = f; @@ -93,15 +95,15 @@ public: } }; -inline std::unique_ptr new_read_options() { +inline std::unique_ptr new_read_options() { return std::unique_ptr(new ReadOptionsBridge); } -inline std::unique_ptr new_write_options() { +inline std::unique_ptr new_write_options() { return std::unique_ptr(new WriteOptionsBridge); } -inline std::unique_ptr new_options() { +inline std::unique_ptr new_options() { return std::unique_ptr(new OptionsBridge); } @@ -124,7 +126,7 @@ inline void write_status(RDB::Status &&rstatus, Status &status) { } struct DBBridge { - mutable std::unique_ptr inner; + mutable std::unique_ptr inner; DBBridge(RDB::DB *inner_) : inner(inner_) {} @@ -142,7 +144,7 @@ struct DBBridge { ); } - inline std::unique_ptr get( + inline std::unique_ptr get( const ReadOptionsBridge &options, rust::Slice key, Status &status @@ -159,7 +161,16 @@ struct DBBridge { } }; -inline std::unique_ptr open_db(const OptionsBridge &options, const rust::Slice path) { +inline std::vector list_column_families(const OptionsBridge &options, + const rust::Slice path) { + std::vector column_families; + RDB::DB::ListColumnFamilies(options.inner, + std::string(reinterpret_cast(path.data()), path.size()), + &column_families); + return column_families; +} + +inline std::unique_ptr open_db(const OptionsBridge &options, const rust::Slice path) { RDB::DB *db_ptr; RDB::Status s = RDB::DB::Open(options.inner, std::string(reinterpret_cast(path.data()), path.size()), diff --git a/cozo-rocks/src/lib.rs b/cozo-rocks/src/lib.rs index 0ddcee2c..1d1e3eda 100644 --- a/cozo-rocks/src/lib.rs +++ b/cozo-rocks/src/lib.rs @@ -91,7 +91,6 @@ mod ffi { } -use std::sync::atomic::Ordering; use cxx::UniquePtr; pub use ffi::*; @@ -177,6 +176,7 @@ impl Default for WriteOptions { pub struct DB { bridge: UniquePtr, + #[allow(dead_code)] options: Options, default_read_options: ReadOptions, default_write_options: WriteOptions, diff --git a/src/definition.rs b/src/definition.rs index 18b19d8b..9761a892 100644 --- a/src/definition.rs +++ b/src/definition.rs @@ -6,9 +6,9 @@ use crate::error::Result; use crate::error::CozoError::*; use crate::eval::Evaluator; use crate::storage::Storage; -use crate::typing::{Col, Columns, Edge, Index, Node, StorageStatus, Structured, TableId, Typing}; +use crate::typing::{Col, Columns, Edge, Index, Node, Structured, TableId, Typing}; use crate::typing::StorageStatus::{Planned, Stored}; -use crate::value::{ByteArrayBuilder, ByteArrayParser, Value}; +use crate::value::{ByteArrayBuilder, Value}; use crate::parser::{Parser, Rule}; use pest::Parser as PestParser; // use rocksdb::IteratorMode; @@ -291,6 +291,7 @@ pub enum TableKind { } impl Storage { + #[allow(unused_variables)] fn all_metadata(&self, env: &StructuredEnvItem) -> Result> { todo!() // let it = self.db.as_ref().ok_or(DatabaseClosed)?.full_iterator(IteratorMode::Start); diff --git a/src/storage.rs b/src/storage.rs index e346b277..ed457b1a 100644 --- a/src/storage.rs +++ b/src/storage.rs @@ -1,10 +1,9 @@ -use crate::error::CozoError::DatabaseClosed; use crate::error::Result; -use crate::value::cozo_comparator_v1; pub struct Storage { pub db: Option<()>, + #[allow(dead_code)] path: String, } // @@ -28,6 +27,7 @@ impl Storage { pub fn no_storage() -> Self { Self { db: None, path: "".to_string() } } + #[allow(unused_variables)] pub fn new(path: String) -> Result { unimplemented!() // let options = make_options(); @@ -41,37 +41,40 @@ impl Storage { // let db = DB::open_cf_descriptors(&options, &path, cfs)?; // Ok(Storage { db: Some(db), path }) } + #[allow(unused_variables)] pub fn delete(&mut self) -> Result<()> { - unimplemented!(); + unimplemented!() // drop(self.db.take()); // DB::destroy(&make_options(), &self.path)?; - Ok(()) + // Ok(()) } + #[allow(unused_variables)] pub fn put_global(&self, k: &[u8], v: &[u8]) -> Result<()> { // let db = self.db.as_ref().ok_or(DatabaseClosed)?; // db.put(k, v)?; - unimplemented!(); - Ok(()) + unimplemented!() + // Ok(()) } + #[allow(unused_variables)] pub fn create_table(&mut self, name: &str, _global: bool) -> Result<()> { - unimplemented!(); + unimplemented!() // let db = self.db.as_mut().ok_or(DatabaseClosed)?; // db.create_cf(name, &make_options())?; - Ok(()) + // Ok(()) } + #[allow(unused_variables)] pub fn drop_table(&mut self, name: &str, _global: bool) -> Result<()> { - unimplemented!(); + unimplemented!() // let db = self.db.as_mut().ok_or(DatabaseClosed)?; // db.drop_cf(name)?; - Ok(()) + // Ok(()) } } #[cfg(test)] mod tests { use std::str::from_utf8; - use crate::value::{ByteArrayBuilder, Value}; - use super::*; + use crate::value::{ByteArrayBuilder, cozo_comparator_v1, Value}; #[test] fn import() {