From 765689b66e1a2a21c85312b66821626d912a1556 Mon Sep 17 00:00:00 2001 From: Hassan Abedi Date: Fri, 29 May 2026 15:53:13 +0200 Subject: [PATCH] Add scaffolding for `query-ops` crate --- Cargo.lock | 4 ++++ crates/geomerge-demo/README.md | 2 +- crates/query-ops/Cargo.toml | 11 +++++++++++ crates/query-ops/src/lib.rs | 10 ++++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 crates/query-ops/Cargo.toml create mode 100644 crates/query-ops/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 2a0b3ff..99b5379 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -282,6 +282,10 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "query-ops" +version = "0.1.0" + [[package]] name = "quote" version = "1.0.45" diff --git a/crates/geomerge-demo/README.md b/crates/geomerge-demo/README.md index 758b371..cac0155 100644 --- a/crates/geomerge-demo/README.md +++ b/crates/geomerge-demo/README.md @@ -4,7 +4,7 @@ This demo shows how to store and read data from Geomerge. The demo: -1. loads the compiled [`paths.json`](../../external/geomerge/crates/geomerge/tests/data/paths.json) schema, +1. loads the compiled [`paths.json`](https://git.sgai.uk/vincent_liu/geomerge/-/raw/main/crates/geomerge/tests/data/paths.json) schema, 2. creates a Geomerge store, 3. inserts a small graph dataset in one transaction, 4. reads the inserted edge back, diff --git a/crates/query-ops/Cargo.toml b/crates/query-ops/Cargo.toml new file mode 100644 index 0000000..b97a926 --- /dev/null +++ b/crates/query-ops/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "query-ops" +version = "0.1.0" +edition.workspace = true +license.workspace = true +rust-version.workspace = true + +[lints] +workspace = true + +[dependencies] diff --git a/crates/query-ops/src/lib.rs b/crates/query-ops/src/lib.rs new file mode 100644 index 0000000..df690ca --- /dev/null +++ b/crates/query-ops/src/lib.rs @@ -0,0 +1,10 @@ +//! Physical operators for a small query-plan executor. +//! +//! Targeted scope: +//! - atom scans with repeated-variable filtering and variable-binding output +//! - semijoins +//! - natural joins +//! +//! The operators are intended to be composed by hand into a small plan and +//! evaluated against in-memory relations. Integration with an external query +//! plan IR is out of scope for this crate.