Expand description
Common Table Expressions (CTEs) support.
This module provides types for building CTEs (WITH clauses) across different database backends.
§Supported Features
| Feature | PostgreSQL | MySQL | SQLite | MSSQL | MongoDB |
|---|---|---|---|---|---|
| Non-recursive | ✅ | ✅ | ✅ | ✅ | ❌ ($lookup) |
| Recursive | ✅ | ✅ | ✅ | ✅ | ❌ |
| Materialized | ✅ | ❌ | ❌ | ❌ | ❌ |
| Pipeline stages | ❌ | ❌ | ❌ | ❌ | ✅ $lookup |
§Example Usage
ⓘ
use prax_query::cte::{Cte, CteBuilder, WithClause};
// Simple CTE
let cte = Cte::new("active_users")
.columns(["id", "name", "email"])
.as_query("SELECT * FROM users WHERE active = true");
// Build full query with CTE
let query = WithClause::new()
.cte(cte)
.select("*")
.from("active_users")
.build();Modules§
- mongodb
- MongoDB $lookup pipeline support (CTE equivalent).
- patterns
- Helper functions for common CTE patterns.
Structs§
- Cte
- A Common Table Expression (CTE) definition.
- CteBuilder
- Builder for CTEs.
- Cycle
Clause - Cycle detection for recursive CTEs.
- Search
Clause - Search clause for recursive CTEs.
- With
Clause - A WITH clause containing one or more CTEs.
- With
Query Builder - Builder for queries using WITH clause.
Enums§
- Materialized
- Materialization hint for CTEs (PostgreSQL only).
- Search
Method - Search method for recursive CTEs.