Expand description
Database abstraction layer.
This module provides database-agnostic access to multiple database backends:
- PostgreSQL (primary, full feature set)
- MySQL (secondary support)
- SQLite (local dev, testing)
- SQL Server (enterprise)
§Architecture
The database layer follows a trait-based design:
DatabaseAdapter- Core trait for query executionWhereClauseGenerator- Database-specific WHERE SQL generationConnectionPool- Connection pooling abstraction
§Example
use fraiseql_core::db::{DatabaseAdapter, WhereClause, WhereOperator, postgres::PostgresAdapter};
use serde_json::json;
// Create PostgreSQL adapter
let adapter = PostgresAdapter::new("postgresql://localhost/mydb").await?;
// Build WHERE clause
let where_clause = WhereClause::Field {
path: vec!["email".to_string()],
operator: WhereOperator::Icontains,
value: json!("example.com"),
};
// Execute query
let results = adapter
.execute_where_query("v_user", Some(&where_clause), None, None)
.await?;
println!("Found {} users", results.len());Re-exports§
pub use collation::CollationCapabilities;pub use collation::CollationMapper;pub use identifier::quote_mysql_identifier;pub use identifier::quote_postgres_identifier;pub use identifier::quote_sqlite_identifier;pub use identifier::quote_sqlserver_identifier;pub use postgres::PostgresAdapter;pub use postgres::PostgresIntrospector;pub use projection_generator::PostgresProjectionGenerator;pub use traits::DatabaseAdapter;pub use traits::DatabaseCapabilities;pub use types::DatabaseType;pub use types::JsonbValue;pub use types::PoolMetrics;pub use where_clause::HavingClause;pub use where_clause::WhereClause;pub use where_clause::WhereOperator;pub use where_sql_generator::WhereSqlGenerator;
Modules§
- collation
- Database-specific collation mapping.
- identifier
- Database identifier quoting utilities.
- path_
escape - Escape utilities for JSON path SQL injection prevention.
- postgres
- PostgreSQL database adapter.
- projection_
generator - SQL Projection Query Generator
- traits
- Database adapter trait definitions.
- types
- Database types and data structures.
- where_
clause - WHERE clause abstract syntax tree.
- where_
sql_ generator - WHERE clause to SQL string generator for fraiseql-wire.