Skip to main content

HyperQueryBuilder

Struct HyperQueryBuilder 

Source
pub struct HyperQueryBuilder;
Expand description

HyperDB-specific SQL dialect backend for sea-query.

Generates SQL compatible with HyperDB’s dialect, as documented at https://developer.salesforce.com/docs/data/data-cloud-query-guide/references/dc-sql-reference/select.html.

§Delegation Strategy

HyperDB’s SQL dialect is largely PostgreSQL-compatible — identifier quoting, placeholder syntax ($1, $2, ...), operator precedence, and DDL/DML syntax all match PostgreSQL. Rather than duplicating that logic, this builder delegates to PostgresQueryBuilder for all operations.

As Hyper’s dialect evolves (e.g., Hyper-specific type names, functions, or DDL extensions), individual trait methods will be overridden to emit Hyper-specific syntax while the rest continues to delegate.

Notable HyperDB SQL features:

  • Optional FROM clause for simple expressions
  • DISTINCT ON extension
  • Standard UNION, INTERSECT, EXCEPT operations
  • Zero-column result tables

§Examples

use sea_query::{Query, Expr, Iden};
use sea_query_hyperdb::HyperQueryBuilder;

#[derive(Iden)]
enum Users {
    Table,
    Name,
    Age,
}

let sql = Query::select()
    .column(Users::Name)
    .from(Users::Table)
    .and_where(Expr::col(Users::Age).gt(18))
    .to_string(HyperQueryBuilder);

assert!(sql.contains(r#""users""#));

Trait Implementations§

Source§

impl Clone for HyperQueryBuilder

Source§

fn clone(&self) -> HyperQueryBuilder

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for HyperQueryBuilder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for HyperQueryBuilder

Source§

fn default() -> HyperQueryBuilder

Returns the “default value” for a type. Read more
Source§

impl EscapeBuilder for HyperQueryBuilder

Source§

fn escape_string(&self, string: &str) -> String

Escape a SQL string literal
Source§

fn unescape_string(&self, string: &str) -> String

Unescape a SQL string literal
Source§

impl ForeignKeyBuilder for HyperQueryBuilder

Source§

fn prepare_table_ref_fk_stmt( &self, table_ref: &TableRef, sql: &mut dyn SqlWriter, )

Translate TableRef into SQL statement.
Source§

fn prepare_foreign_key_create_statement( &self, create: &ForeignKeyCreateStatement, sql: &mut dyn SqlWriter, )

Translate ForeignKeyCreateStatement into SQL statement.
Source§

fn prepare_foreign_key_drop_statement( &self, drop: &ForeignKeyDropStatement, sql: &mut dyn SqlWriter, )

Translate ForeignKeyDropStatement into SQL statement.
Source§

fn prepare_foreign_key_action( &self, foreign_key_action: &ForeignKeyAction, sql: &mut dyn SqlWriter, )

Translate ForeignKeyAction into SQL statement.
Source§

impl IndexBuilder for HyperQueryBuilder

Source§

fn prepare_index_create_statement( &self, create: &IndexCreateStatement, sql: &mut dyn SqlWriter, )

Translate IndexCreateStatement into SQL statement.
Source§

fn prepare_table_ref_index_stmt( &self, table_ref: &TableRef, sql: &mut dyn SqlWriter, )

Translate TableRef into SQL statement.
Source§

fn prepare_index_drop_statement( &self, drop: &IndexDropStatement, sql: &mut dyn SqlWriter, )

Translate IndexDropStatement into SQL statement.
Source§

fn prepare_table_index_expression( &self, create: &IndexCreateStatement, sql: &mut dyn SqlWriter, )

Translate IndexCreateStatement into SQL expression. This is the default implementation for PostgresQueryBuilder and SqliteQueryBuilder. MysqlQueryBuilder overrides this default implementation.
Source§

impl OperLeftAssocDecider for HyperQueryBuilder

Source§

impl PrecedenceDecider for HyperQueryBuilder

Source§

impl QueryBuilder for HyperQueryBuilder

Source§

fn prepare_query_statement( &self, query: &SubQueryStatement, sql: &mut dyn SqlWriter, )

Translate QueryStatement into SQL statement.
Source§

fn prepare_value(&self, value: &Value, sql: &mut dyn SqlWriter)

Write Value into SQL statement as parameter.
Source§

fn placeholder(&self) -> (&str, bool)

The type of placeholder the builder uses for values, and whether it is numbered.
Source§

fn values_list_tuple_prefix(&self) -> &str

Prefix for tuples in VALUES list (e.g. ROW for MySQL)
Source§

fn prepare_insert_statement( &self, insert: &InsertStatement, sql: &mut dyn SqlWriter, )

Translate InsertStatement into SQL statement.
Source§

fn prepare_union_statement( &self, union_type: UnionType, select_statement: &SelectStatement, sql: &mut dyn SqlWriter, )

Source§

fn prepare_select_statement( &self, select: &SelectStatement, sql: &mut dyn SqlWriter, )

Translate SelectStatement into SQL statement.
Source§

fn prepare_select_limit_offset( &self, select: &SelectStatement, sql: &mut dyn SqlWriter, )

Source§

fn prepare_update_statement( &self, update: &UpdateStatement, sql: &mut dyn SqlWriter, )

Translate UpdateStatement into SQL statement.
Source§

fn prepare_update_join( &self, _: &[TableRef], _: &ConditionHolder, _: &mut dyn SqlWriter, )

Source§

fn prepare_update_from(&self, from: &[TableRef], sql: &mut dyn SqlWriter)

Source§

fn prepare_update_column( &self, _: &Option<Box<TableRef>>, _: &[TableRef], column: &SeaRc<dyn Iden>, sql: &mut dyn SqlWriter, )

Source§

fn prepare_update_condition( &self, _: &[TableRef], condition: &ConditionHolder, sql: &mut dyn SqlWriter, )

Source§

fn prepare_update_order_by( &self, update: &UpdateStatement, sql: &mut dyn SqlWriter, )

Translate ORDER BY expression in UpdateStatement.
Source§

fn prepare_update_limit( &self, update: &UpdateStatement, sql: &mut dyn SqlWriter, )

Translate LIMIT expression in UpdateStatement.
Source§

fn prepare_delete_statement( &self, delete: &DeleteStatement, sql: &mut dyn SqlWriter, )

Translate DeleteStatement into SQL statement.
Source§

fn prepare_delete_order_by( &self, delete: &DeleteStatement, sql: &mut dyn SqlWriter, )

Translate ORDER BY expression in DeleteStatement.
Source§

fn prepare_delete_limit( &self, delete: &DeleteStatement, sql: &mut dyn SqlWriter, )

Translate LIMIT expression in DeleteStatement.
Source§

fn prepare_simple_expr(&self, simple_expr: &SimpleExpr, sql: &mut dyn SqlWriter)

Translate SimpleExpr into SQL statement.
Source§

fn prepare_simple_expr_common( &self, simple_expr: &SimpleExpr, sql: &mut dyn SqlWriter, )

Source§

fn prepare_case_statement(&self, stmts: &CaseStatement, sql: &mut dyn SqlWriter)

Translate CaseStatement into SQL statement.
Source§

fn prepare_select_distinct( &self, select_distinct: &SelectDistinct, sql: &mut dyn SqlWriter, )

Translate SelectDistinct into SQL statement.
Source§

fn prepare_index_hints( &self, _select: &SelectStatement, _sql: &mut dyn SqlWriter, )

Translate [IndexHint] into SQL statement.
Source§

fn prepare_table_sample( &self, _select: &SelectStatement, _sql: &mut dyn SqlWriter, )

Translate [TableSample] into SQL statement.
Source§

fn prepare_select_lock(&self, lock: &LockClause, sql: &mut dyn SqlWriter)

Translate LockType into SQL statement.
Source§

fn prepare_select_expr(&self, select_expr: &SelectExpr, sql: &mut dyn SqlWriter)

Translate SelectExpr into SQL statement.
Source§

fn prepare_join_expr(&self, join_expr: &JoinExpr, sql: &mut dyn SqlWriter)

Translate JoinExpr into SQL statement.
Source§

fn prepare_join_table_ref(&self, join_expr: &JoinExpr, sql: &mut dyn SqlWriter)

Source§

fn prepare_table_ref(&self, table_ref: &TableRef, sql: &mut dyn SqlWriter)

Translate TableRef into SQL statement.
Source§

fn prepare_column_ref(&self, column_ref: &ColumnRef, sql: &mut dyn SqlWriter)

Source§

fn prepare_un_oper(&self, un_oper: &UnOper, sql: &mut dyn SqlWriter)

Translate UnOper into SQL statement.
Source§

fn prepare_bin_oper_common(&self, bin_oper: &BinOper, sql: &mut dyn SqlWriter)

Source§

fn prepare_bin_oper(&self, bin_oper: &BinOper, sql: &mut dyn SqlWriter)

Translate BinOper into SQL statement.
Source§

fn prepare_sub_query_oper(&self, oper: &SubQueryOper, sql: &mut dyn SqlWriter)

Translate SubQueryOper into SQL statement.
Source§

fn prepare_logical_chain_oper( &self, log_chain_oper: &LogicalChainOper, i: usize, length: usize, sql: &mut dyn SqlWriter, )

Translate LogicalChainOper into SQL statement.
Source§

fn prepare_function_name_common( &self, function: &Function, sql: &mut dyn SqlWriter, )

Translate Function into SQL statement.
Source§

fn prepare_function_arguments( &self, func: &FunctionCall, sql: &mut dyn SqlWriter, )

Source§

fn prepare_with_query(&self, query: &WithQuery, sql: &mut dyn SqlWriter)

Source§

fn prepare_with_clause(&self, with_clause: &WithClause, sql: &mut dyn SqlWriter)

Source§

fn prepare_with_clause_recursive_options( &self, with_clause: &WithClause, sql: &mut dyn SqlWriter, )

Source§

fn prepare_with_clause_common_tables( &self, with_clause: &WithClause, sql: &mut dyn SqlWriter, )

Source§

fn prepare_with_query_clause_common_table( &self, cte: &CommonTableExpression, sql: &mut dyn SqlWriter, )

Source§

fn prepare_with_query_clause_materialization( &self, cte: &CommonTableExpression, sql: &mut dyn SqlWriter, )

Source§

fn prepare_with_clause_start( &self, with_clause: &WithClause, sql: &mut dyn SqlWriter, )

Source§

fn prepare_insert(&self, replace: bool, sql: &mut dyn SqlWriter)

Source§

fn prepare_function_name(&self, function: &Function, sql: &mut dyn SqlWriter)

Source§

fn prepare_join_type(&self, join_type: &JoinType, sql: &mut dyn SqlWriter)

Translate JoinType into SQL statement.
Source§

fn prepare_join_type_common( &self, join_type: &JoinType, sql: &mut dyn SqlWriter, )

Source§

fn prepare_order_expr(&self, order_expr: &OrderExpr, sql: &mut dyn SqlWriter)

Translate OrderExpr into SQL statement.
Source§

fn prepare_join_on(&self, join_on: &JoinOn, sql: &mut dyn SqlWriter)

Translate JoinOn into SQL statement.
Source§

fn prepare_order(&self, order_expr: &OrderExpr, sql: &mut dyn SqlWriter)

Translate Order into SQL statement.
Source§

fn prepare_field_order( &self, order_expr: &OrderExpr, values: &Values, sql: &mut dyn SqlWriter, )

Translate Order::Field into SQL statement
Source§

fn prepare_constant(&self, value: &Value, sql: &mut dyn SqlWriter)

Write Value inline.
Source§

fn prepare_values_list( &self, value_tuples: &[ValueTuple], sql: &mut dyn SqlWriter, )

Translate a &[ValueTuple] into a VALUES list.
Source§

fn prepare_tuple(&self, exprs: &[SimpleExpr], sql: &mut dyn SqlWriter)

Translate SimpleExpr::Tuple into SQL statement.
Source§

fn prepare_keyword(&self, keyword: &Keyword, sql: &mut dyn SqlWriter)

Translate Keyword into SQL statement.
Source§

fn value_to_string(&self, v: &Value) -> String

Convert a SQL value into syntax-specific string
Source§

fn value_to_string_common(&self, v: &Value) -> String

Source§

fn prepare_on_conflict_action_common( &self, on_conflict_action: &Option<OnConflictAction>, sql: &mut dyn SqlWriter, )

Source§

fn insert_default_keyword(&self) -> &str

The keywords for insert default row.
Source§

fn insert_default_values(&self, num_rows: u32, sql: &mut dyn SqlWriter)

Write insert default rows expression.
Source§

fn prepare_constant_true(&self, sql: &mut dyn SqlWriter)

Write TRUE constant
Source§

fn prepare_constant_false(&self, sql: &mut dyn SqlWriter)

Write FALSE constant
Source§

impl QuotedBuilder for HyperQueryBuilder

Source§

fn quote(&self) -> Quote

The type of quote the builder uses.
Source§

impl TableBuilder for HyperQueryBuilder

Source§

fn prepare_column_def(&self, column_def: &ColumnDef, sql: &mut dyn SqlWriter)

Translate ColumnDef into SQL statement.
Source§

fn prepare_column_type(&self, column_type: &ColumnType, sql: &mut dyn SqlWriter)

Translate ColumnType into SQL statement.
Source§

fn column_spec_auto_increment_keyword(&self) -> &str

The keyword for setting a column to be auto increment.
Source§

fn prepare_table_alter_statement( &self, alter: &TableAlterStatement, sql: &mut dyn SqlWriter, )

Translate TableAlterStatement into SQL statement.
Source§

fn prepare_table_rename_statement( &self, rename: &TableRenameStatement, sql: &mut dyn SqlWriter, )

Translate TableRenameStatement into SQL statement.
Source§

fn prepare_table_create_statement( &self, create: &TableCreateStatement, sql: &mut dyn SqlWriter, )

Translate TableCreateStatement into SQL statement.
Source§

fn prepare_table_ref_table_stmt( &self, table_ref: &TableRef, sql: &mut dyn SqlWriter, )

Translate TableRef into SQL statement.
Source§

fn prepare_column_def_internal( &self, _is_alter_column: bool, column_def: &ColumnDef, sql: &mut dyn SqlWriter, )

Translate ColumnDef into SQL statement.
Source§

fn prepare_column_spec(&self, column_spec: &ColumnSpec, sql: &mut dyn SqlWriter)

Translate ColumnSpec into SQL statement.
Source§

fn column_comment(&self, _comment: &str, _sql: &mut dyn SqlWriter)

column comment
Source§

fn prepare_table_opt( &self, create: &TableCreateStatement, sql: &mut dyn SqlWriter, )

Translate TableOpt into SQL statement.
Source§

fn prepare_table_opt_def( &self, create: &TableCreateStatement, sql: &mut dyn SqlWriter, )

Default function
Source§

fn prepare_table_partition( &self, _table_partition: &TablePartition, _sql: &mut dyn SqlWriter, )

Translate TablePartition into SQL statement.
Source§

fn prepare_table_drop_statement( &self, drop: &TableDropStatement, sql: &mut dyn SqlWriter, )

Translate TableDropStatement into SQL statement.
Source§

fn prepare_table_drop_opt( &self, drop_opt: &TableDropOpt, sql: &mut dyn SqlWriter, )

Translate TableDropOpt into SQL statement.
Source§

fn prepare_table_truncate_statement( &self, truncate: &TableTruncateStatement, sql: &mut dyn SqlWriter, )

Translate TableTruncateStatement into SQL statement.
Source§

fn prepare_check_constraint(&self, check: &SimpleExpr, sql: &mut dyn SqlWriter)

Translate the check constraint into SQL statement
Source§

fn prepare_generated_column( &self, gen: &SimpleExpr, stored: bool, sql: &mut dyn SqlWriter, )

Translate the generated column into SQL statement
Source§

fn prepare_create_table_if_not_exists( &self, create: &TableCreateStatement, sql: &mut dyn SqlWriter, )

Translate IF NOT EXISTS expression in TableCreateStatement.
Source§

fn prepare_create_temporary_table( &self, create: &TableCreateStatement, sql: &mut dyn SqlWriter, )

Translate TEMPORARY expression in TableCreateStatement.
Source§

impl TableRefBuilder for HyperQueryBuilder

Source§

fn prepare_table_ref_iden(&self, table_ref: &TableRef, sql: &mut dyn SqlWriter)

Translate TableRef that without values into SQL statement.
Source§

impl Copy for HyperQueryBuilder

Source§

impl GenericBuilder for HyperQueryBuilder

Source§

impl SchemaBuilder for HyperQueryBuilder

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.