| Crates.io | aegis-query |
| lib.rs | aegis-query |
| version | 0.1.7 |
| created_at | 2026-01-20 02:35:40.936216+00 |
| updated_at | 2026-01-24 03:50:15.587185+00 |
| description | Query engine for Aegis database |
| homepage | https://automatanexus.com |
| repository | https://github.com/AutomataNexus/Aegis-DB |
| max_upload_size | |
| id | 2055685 |
| size | 227,098 |
SQL query engine for the Aegis Database Platform.
aegis-query provides a complete SQL query pipeline including parsing, semantic analysis, query planning, and execution. It supports standard SQL with extensions for time series and document queries.
sqlparserSQL Query
│
▼
┌─────────────┐
│ Parser │ SQL text → AST
└──────┬──────┘
│
▼
┌─────────────┐
│ Analyzer │ AST → Validated AST (types, schema)
└──────┬──────┘
│
▼
┌─────────────┐
│ Planner │ Validated AST → Optimized Plan
└──────┬──────┘
│
▼
┌─────────────┐
│ Executor │ Plan → Results
└─────────────┘
| Module | Description |
|---|---|
parser |
SQL parsing and tokenization |
ast |
Abstract syntax tree definitions |
analyzer |
Semantic analysis and type checking |
planner |
Query planning and optimization |
executor |
Query execution engine |
[dependencies]
aegis-query = { path = "../aegis-query" }
use aegis_query::{QueryEngine, QueryResult};
let engine = QueryEngine::new(storage)?;
// Execute a query
let result = engine.execute("SELECT * FROM users WHERE age > 21")?;
// Iterate results
for row in result.rows() {
println!("{:?}", row);
}
DDL:
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
DROP TABLE users;
ALTER TABLE users ADD COLUMN status VARCHAR(20);
DML:
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
UPDATE users SET status = 'active' WHERE id = 1;
DELETE FROM users WHERE status = 'inactive';
Queries:
SELECT u.name, COUNT(o.id) as order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.created_at > '2024-01-01'
GROUP BY u.name
HAVING COUNT(o.id) > 5
ORDER BY order_count DESC
LIMIT 10;
The planner applies several optimization rules:
cargo test -p aegis-query
Test count: 17 tests
Apache-2.0