photoncloud-monorepo/docs/por/T037-flaredb-sql-layer/example-crud/README.md
centra 5c6eb04a46 T036: Add VM cluster deployment configs for nixos-anywhere
- 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>
2025-12-11 09:59:19 +09:00

2.3 KiB

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

# 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