Skip to main content

fraiseql_db/dialect/
mod.rs

1//! SQL dialect abstractions for WHERE clause generation.
2//!
3//! This module defines the [`SqlDialect`] trait and provides four dialect
4//! implementations: [`PostgresDialect`], [`MySqlDialect`], [`SqliteDialect`],
5//! and [`SqlServerDialect`].
6//!
7//! The generic [`GenericWhereGenerator`] is parameterised over any type that
8//! implements `SqlDialect`, so dialect-specific primitives (identifier quoting,
9//! JSON extraction, placeholder syntax, LIKE/ILIKE, …) can be swapped without
10//! touching the visitor logic.
11//!
12//! [`GenericWhereGenerator`]: crate::where_generator::GenericWhereGenerator
13
14// The trait lives in a sub-module so the `pub use` below re-exports it cleanly
15// without polluting this module's item namespace with the internal `trait_def` name.
16pub mod capability;
17pub mod trait_def;
18
19mod mysql;
20mod postgres;
21mod sqlite;
22mod sqlserver;
23
24pub use capability::{DialectCapabilityGuard, Feature};
25pub use mysql::MySqlDialect;
26pub use postgres::PostgresDialect;
27pub use sqlite::SqliteDialect;
28pub use sqlserver::SqlServerDialect;
29pub use trait_def::{RowViewColumnType, SqlDialect, UnsupportedOperator};