Expand description
HyperDB SQL dialect backend for sea-query.
This crate provides HyperQueryBuilder, a sea-query backend that generates SQL
compatible with HyperDB’s SQL dialect. HyperDB is largely PostgreSQL-compatible, so
this builder currently delegates to PostgresQueryBuilder for all operations.
As Hyper’s SQL dialect evolves and diverges from PostgreSQL, this builder will be
updated to emit Hyper-specific syntax where needed (e.g., type names, function calls,
or DDL extensions).
§Usage
HyperQueryBuilder implements all sea-query backend traits (QueryBuilder,
SchemaBuilder, GenericBuilder), so it can be used anywhere a sea-query
backend is accepted:
use sea_query::{Query, Expr, Iden, PostgresQueryBuilder};
use sea_query_hyperdb::HyperQueryBuilder;
#[derive(Iden)]
enum Users {
Table,
Id,
Name,
}
let query = Query::select()
.column(Users::Id)
.column(Users::Name)
.from(Users::Table)
.and_where(Expr::col(Users::Id).gt(10))
.to_owned();
// Build with parameter placeholders ($1, $2, ...)
let (sql, values) = query.build(HyperQueryBuilder);
assert!(sql.contains("SELECT"));
// Or get the SQL string with values inlined
let sql_string = query.to_string(HyperQueryBuilder);
assert!(sql_string.contains("WHERE"));§With hyperdb-api
ⓘ
use hyperdb_api::Connection;
use sea_query::{Query, Expr, Iden};
use sea_query_hyperdb::HyperQueryBuilder;
#[derive(Iden)]
enum Products {
Table,
Name,
Price,
}
let query = Query::select()
.column(Products::Name)
.column(Products::Price)
.from(Products::Table)
.and_where(Expr::col(Products::Price).gt(100))
.to_owned();
let sql = query.to_string(HyperQueryBuilder);
let result = conn.execute_query(&sql)?;Structs§
- Hyper
Query Builder - HyperDB-specific SQL dialect backend for sea-query.