Skip to main content

Module db

Module db 

Source
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 execution
  • WhereClauseGenerator - Database-specific WHERE SQL generation
  • ConnectionPool - 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.