- netboot-base.nix with SSH key auth - Launch scripts for node01/02/03 - Node configuration.nix and disko.nix - Nix modules for first-boot automation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
90 lines
2.3 KiB
Markdown
90 lines
2.3 KiB
Markdown
# FlareDB SQL Layer CRUD Example
|
|
|
|
This example demonstrates the basic CRUD operations using the FlareDB SQL layer.
|
|
|
|
## Prerequisites
|
|
|
|
1. A running FlareDB server on `127.0.0.1:8001`
|
|
2. Rust toolchain installed
|
|
|
|
## What This Example Does
|
|
|
|
The example performs the following operations:
|
|
|
|
1. **CREATE TABLE**: Creates a `users` table with columns (id, name, email, active)
|
|
2. **INSERT**: Inserts 4 sample users into the table
|
|
3. **SELECT \***: Queries all users
|
|
4. **SELECT with WHERE**: Queries only active users
|
|
5. **SELECT specific user**: Queries a single user by ID
|
|
6. **DROP TABLE**: Cleans up by dropping the table
|
|
|
|
## Running the Example
|
|
|
|
```bash
|
|
# Navigate to the example directory
|
|
cd docs/por/T037-flaredb-sql-layer/example-crud
|
|
|
|
# Run the example
|
|
cargo run --bin crud-example
|
|
```
|
|
|
|
## Expected Output
|
|
|
|
```
|
|
=== FlareDB SQL Layer CRUD Example ===
|
|
|
|
Connecting to FlareDB server at 127.0.0.1:8001...
|
|
Connected!
|
|
|
|
Step 1: Creating 'users' table...
|
|
✓ DdlSuccess("Table 'users' created")
|
|
|
|
Step 2: Inserting users...
|
|
✓ Inserted: Alice Johnson - DmlSuccess(1)
|
|
✓ Inserted: Bob Smith - DmlSuccess(1)
|
|
✓ Inserted: Carol White - DmlSuccess(1)
|
|
✓ Inserted: Dave Brown - DmlSuccess(1)
|
|
|
|
Step 3: Querying all users...
|
|
✓ Query result:
|
|
QueryResult { columns: ["id", "name", "email", "active"], rows: [...] }
|
|
|
|
Step 4: Querying active users only...
|
|
✓ Active users:
|
|
QueryResult { columns: ["id", "name", "email", "active"], rows: [...] }
|
|
|
|
Step 5: Querying user with id=2...
|
|
✓ Found user:
|
|
QueryResult { columns: ["id", "name", "email", "active"], rows: [...] }
|
|
|
|
Step 6: Dropping 'users' table...
|
|
✓ DdlSuccess("Table 'users' dropped")
|
|
|
|
=== Example completed ===
|
|
```
|
|
|
|
## Implementation Details
|
|
|
|
The example uses:
|
|
- `flaredb-client`: For connecting to the FlareDB server
|
|
- `flaredb-sql`: For executing SQL statements
|
|
|
|
All operations use strong consistency mode, ensuring ACID properties for SQL operations.
|
|
|
|
## Supported SQL Statements
|
|
|
|
Current SQL layer implementation supports:
|
|
- `CREATE TABLE` with primary key constraints
|
|
- `DROP TABLE`
|
|
- `INSERT INTO` with explicit column values
|
|
- `SELECT` with column list or `*`
|
|
- `WHERE` clause with comparison operators (=, <, >, <=, >=, !=)
|
|
|
|
## Future Enhancements
|
|
|
|
Planned features include:
|
|
- UPDATE and DELETE statements
|
|
- JOIN operations
|
|
- Aggregation functions (COUNT, SUM, AVG, etc.)
|
|
- ORDER BY and LIMIT clauses
|
|
- Indexes for query optimization
|