pub trait QueryBuilder:
QuotedBuilder
+ EscapeBuilder
+ TableRefBuilder
+ OperLeftAssocDecider
+ PrecedenceDecider
+ Sized {
Show 65 methods
// Required methods
fn prepare_query_statement(
&self,
query: &SubQueryStatement,
sql: &mut impl SqlWriter,
);
fn prepare_value(&self, value: Value, sql: &mut impl SqlWriter);
// Provided methods
fn placeholder(&self) -> (&'static str, bool) { ... }
fn values_list_tuple_prefix(&self) -> &str { ... }
fn prepare_insert_statement(
&self,
insert: &InsertStatement,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_union_statement(
&self,
union_type: UnionType,
select_statement: &SelectStatement,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_select_statement(
&self,
select: &SelectStatement,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_select_limit_offset(
&self,
select: &SelectStatement,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_update_statement(
&self,
update: &UpdateStatement,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_update_join(
&self,
_: &[TableRef],
_: &ConditionHolder,
_: &mut impl SqlWriter,
) { ... }
fn prepare_update_from(&self, from: &[TableRef], sql: &mut impl SqlWriter) { ... }
fn prepare_update_column(
&self,
_: &Option<Box<TableRef>>,
_: &[TableRef],
column: &DynIden,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_update_condition(
&self,
_: &[TableRef],
condition: &ConditionHolder,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_update_order_by(
&self,
update: &UpdateStatement,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_update_limit(
&self,
update: &UpdateStatement,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_delete_statement(
&self,
delete: &DeleteStatement,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_delete_order_by(
&self,
delete: &DeleteStatement,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_delete_limit(
&self,
delete: &DeleteStatement,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_expr(&self, simple_expr: &Expr, sql: &mut impl SqlWriter) { ... }
fn prepare_expr_common(&self, simple_expr: &Expr, sql: &mut impl SqlWriter) { ... }
fn prepare_case_statement(
&self,
stmts: &CaseStatement,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_select_distinct(
&self,
select_distinct: &SelectDistinct,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_index_hints(
&self,
_table_ref: &TableRef,
_select: &SelectStatement,
_sql: &mut impl SqlWriter,
) { ... }
fn prepare_table_sample(
&self,
_select: &SelectStatement,
_sql: &mut impl SqlWriter,
) { ... }
fn prepare_select_lock(&self, lock: &LockClause, sql: &mut impl SqlWriter) { ... }
fn prepare_select_expr(
&self,
select_expr: &SelectExpr,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_join_expr(&self, join_expr: &JoinExpr, sql: &mut impl SqlWriter) { ... }
fn prepare_join_table_ref(
&self,
join_expr: &JoinExpr,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_table_ref(&self, table_ref: &TableRef, sql: &mut impl SqlWriter) { ... }
fn prepare_column_ref(
&self,
column_ref: &ColumnRef,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_un_oper(&self, un_oper: &UnOper, sql: &mut impl SqlWriter) { ... }
fn prepare_bin_oper_common(
&self,
bin_oper: &BinOper,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_bin_oper(&self, bin_oper: &BinOper, sql: &mut impl SqlWriter) { ... }
fn prepare_sub_query_oper(
&self,
oper: &SubQueryOper,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_logical_chain_oper(
&self,
log_chain_oper: &LogicalChainOper,
i: usize,
length: usize,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_function_name_common(
&self,
function: &Func,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_function_arguments(
&self,
func: &FunctionCall,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_with_query(&self, query: &WithQuery, sql: &mut impl SqlWriter) { ... }
fn prepare_with_clause(
&self,
with_clause: &WithClause,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_with_clause_recursive_options(
&self,
with_clause: &WithClause,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_with_clause_common_tables(
&self,
with_clause: &WithClause,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_with_query_clause_common_table(
&self,
cte: &CommonTableExpression,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_with_query_clause_materialization(
&self,
cte: &CommonTableExpression,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_with_clause_start(
&self,
with_clause: &WithClause,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_insert(&self, replace: bool, sql: &mut impl SqlWriter) { ... }
fn prepare_function_name(&self, function: &Func, sql: &mut impl SqlWriter) { ... }
fn prepare_type_ref(&self, type_name: &TypeRef, sql: &mut impl SqlWriter) { ... }
fn prepare_join_type(&self, join_type: &JoinType, sql: &mut impl SqlWriter) { ... }
fn prepare_join_type_common(
&self,
join_type: &JoinType,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_order_expr(
&self,
order_expr: &OrderExpr,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_join_on(&self, join_on: &JoinOn, sql: &mut impl SqlWriter) { ... }
fn prepare_order(&self, order_expr: &OrderExpr, sql: &mut impl SqlWriter) { ... }
fn prepare_field_order(
&self,
order_expr: &OrderExpr,
values: &Values,
sql: &mut impl SqlWriter,
) { ... }
fn prepare_constant(&self, value: &Value, sql: &mut impl SqlWriter) { ... }
fn prepare_values_list(
&self,
value_tuples: &[ValueTuple],
sql: &mut impl SqlWriter,
) { ... }
fn prepare_tuple(&self, exprs: &[Expr], sql: &mut impl SqlWriter) { ... }
fn prepare_keyword(&self, keyword: &Keyword, sql: &mut impl SqlWriter) { ... }
fn value_to_string(&self, v: &Value) -> String { ... }
fn value_to_string_common(&self, v: &Value) -> String { ... }
fn prepare_on_conflict_action_common(
&self,
on_conflict_action: &Option<OnConflictAction>,
sql: &mut impl SqlWriter,
) { ... }
fn write_string_quoted(&self, string: &str, buffer: &mut impl Write) { ... }
fn insert_default_keyword(&self) -> &str { ... }
fn insert_default_values(&self, num_rows: u32, sql: &mut impl SqlWriter) { ... }
fn prepare_constant_true(&self, sql: &mut impl SqlWriter) { ... }
fn prepare_constant_false(&self, sql: &mut impl SqlWriter) { ... }
}Required Methods§
Sourcefn prepare_query_statement(
&self,
query: &SubQueryStatement,
sql: &mut impl SqlWriter,
)
fn prepare_query_statement( &self, query: &SubQueryStatement, sql: &mut impl SqlWriter, )
Translate QueryStatement into SQL statement.
Sourcefn prepare_value(&self, value: Value, sql: &mut impl SqlWriter)
fn prepare_value(&self, value: Value, sql: &mut impl SqlWriter)
Write Value into SQL statement as parameter.
Provided Methods§
Sourcefn placeholder(&self) -> (&'static str, bool)
fn placeholder(&self) -> (&'static str, bool)
The type of placeholder the builder uses for values, and whether it is numbered.
Sourcefn values_list_tuple_prefix(&self) -> &str
fn values_list_tuple_prefix(&self) -> &str
Prefix for tuples in VALUES list (e.g. ROW for MySQL)
Sourcefn prepare_insert_statement(
&self,
insert: &InsertStatement,
sql: &mut impl SqlWriter,
)
fn prepare_insert_statement( &self, insert: &InsertStatement, sql: &mut impl SqlWriter, )
Translate InsertStatement into SQL statement.
fn prepare_union_statement( &self, union_type: UnionType, select_statement: &SelectStatement, sql: &mut impl SqlWriter, )
Sourcefn prepare_select_statement(
&self,
select: &SelectStatement,
sql: &mut impl SqlWriter,
)
fn prepare_select_statement( &self, select: &SelectStatement, sql: &mut impl SqlWriter, )
Translate SelectStatement into SQL statement.
fn prepare_select_limit_offset( &self, select: &SelectStatement, sql: &mut impl SqlWriter, )
Sourcefn prepare_update_statement(
&self,
update: &UpdateStatement,
sql: &mut impl SqlWriter,
)
fn prepare_update_statement( &self, update: &UpdateStatement, sql: &mut impl SqlWriter, )
Translate UpdateStatement into SQL statement.
fn prepare_update_join( &self, _: &[TableRef], _: &ConditionHolder, _: &mut impl SqlWriter, )
fn prepare_update_from(&self, from: &[TableRef], sql: &mut impl SqlWriter)
fn prepare_update_column( &self, _: &Option<Box<TableRef>>, _: &[TableRef], column: &DynIden, sql: &mut impl SqlWriter, )
fn prepare_update_condition( &self, _: &[TableRef], condition: &ConditionHolder, sql: &mut impl SqlWriter, )
Sourcefn prepare_update_order_by(
&self,
update: &UpdateStatement,
sql: &mut impl SqlWriter,
)
fn prepare_update_order_by( &self, update: &UpdateStatement, sql: &mut impl SqlWriter, )
Translate ORDER BY expression in UpdateStatement.
Sourcefn prepare_update_limit(
&self,
update: &UpdateStatement,
sql: &mut impl SqlWriter,
)
fn prepare_update_limit( &self, update: &UpdateStatement, sql: &mut impl SqlWriter, )
Translate LIMIT expression in UpdateStatement.
Sourcefn prepare_delete_statement(
&self,
delete: &DeleteStatement,
sql: &mut impl SqlWriter,
)
fn prepare_delete_statement( &self, delete: &DeleteStatement, sql: &mut impl SqlWriter, )
Translate DeleteStatement into SQL statement.
Sourcefn prepare_delete_order_by(
&self,
delete: &DeleteStatement,
sql: &mut impl SqlWriter,
)
fn prepare_delete_order_by( &self, delete: &DeleteStatement, sql: &mut impl SqlWriter, )
Translate ORDER BY expression in DeleteStatement.
Sourcefn prepare_delete_limit(
&self,
delete: &DeleteStatement,
sql: &mut impl SqlWriter,
)
fn prepare_delete_limit( &self, delete: &DeleteStatement, sql: &mut impl SqlWriter, )
Translate LIMIT expression in DeleteStatement.
Sourcefn prepare_expr(&self, simple_expr: &Expr, sql: &mut impl SqlWriter)
fn prepare_expr(&self, simple_expr: &Expr, sql: &mut impl SqlWriter)
Translate Expr into SQL statement.
fn prepare_expr_common(&self, simple_expr: &Expr, sql: &mut impl SqlWriter)
Sourcefn prepare_case_statement(
&self,
stmts: &CaseStatement,
sql: &mut impl SqlWriter,
)
fn prepare_case_statement( &self, stmts: &CaseStatement, sql: &mut impl SqlWriter, )
Translate CaseStatement into SQL statement.
Sourcefn prepare_select_distinct(
&self,
select_distinct: &SelectDistinct,
sql: &mut impl SqlWriter,
)
fn prepare_select_distinct( &self, select_distinct: &SelectDistinct, sql: &mut impl SqlWriter, )
Translate SelectDistinct into SQL statement.
Sourcefn prepare_index_hints(
&self,
_table_ref: &TableRef,
_select: &SelectStatement,
_sql: &mut impl SqlWriter,
)
fn prepare_index_hints( &self, _table_ref: &TableRef, _select: &SelectStatement, _sql: &mut impl SqlWriter, )
Translate [IndexHint] into SQL statement.
Sourcefn prepare_table_sample(
&self,
_select: &SelectStatement,
_sql: &mut impl SqlWriter,
)
fn prepare_table_sample( &self, _select: &SelectStatement, _sql: &mut impl SqlWriter, )
Translate [TableSample] into SQL statement.
Sourcefn prepare_select_lock(&self, lock: &LockClause, sql: &mut impl SqlWriter)
fn prepare_select_lock(&self, lock: &LockClause, sql: &mut impl SqlWriter)
Translate LockType into SQL statement.
Sourcefn prepare_select_expr(
&self,
select_expr: &SelectExpr,
sql: &mut impl SqlWriter,
)
fn prepare_select_expr( &self, select_expr: &SelectExpr, sql: &mut impl SqlWriter, )
Translate SelectExpr into SQL statement.
Sourcefn prepare_join_expr(&self, join_expr: &JoinExpr, sql: &mut impl SqlWriter)
fn prepare_join_expr(&self, join_expr: &JoinExpr, sql: &mut impl SqlWriter)
Translate JoinExpr into SQL statement.
fn prepare_join_table_ref(&self, join_expr: &JoinExpr, sql: &mut impl SqlWriter)
Sourcefn prepare_table_ref(&self, table_ref: &TableRef, sql: &mut impl SqlWriter)
fn prepare_table_ref(&self, table_ref: &TableRef, sql: &mut impl SqlWriter)
Translate TableRef into SQL statement.
fn prepare_column_ref(&self, column_ref: &ColumnRef, sql: &mut impl SqlWriter)
Sourcefn prepare_un_oper(&self, un_oper: &UnOper, sql: &mut impl SqlWriter)
fn prepare_un_oper(&self, un_oper: &UnOper, sql: &mut impl SqlWriter)
Translate UnOper into SQL statement.
fn prepare_bin_oper_common(&self, bin_oper: &BinOper, sql: &mut impl SqlWriter)
Sourcefn prepare_bin_oper(&self, bin_oper: &BinOper, sql: &mut impl SqlWriter)
fn prepare_bin_oper(&self, bin_oper: &BinOper, sql: &mut impl SqlWriter)
Translate BinOper into SQL statement.
Sourcefn prepare_sub_query_oper(&self, oper: &SubQueryOper, sql: &mut impl SqlWriter)
fn prepare_sub_query_oper(&self, oper: &SubQueryOper, sql: &mut impl SqlWriter)
Translate SubQueryOper into SQL statement.
Sourcefn prepare_logical_chain_oper(
&self,
log_chain_oper: &LogicalChainOper,
i: usize,
length: usize,
sql: &mut impl SqlWriter,
)
fn prepare_logical_chain_oper( &self, log_chain_oper: &LogicalChainOper, i: usize, length: usize, sql: &mut impl SqlWriter, )
Translate LogicalChainOper into SQL statement.
Sourcefn prepare_function_name_common(
&self,
function: &Func,
sql: &mut impl SqlWriter,
)
fn prepare_function_name_common( &self, function: &Func, sql: &mut impl SqlWriter, )
Translate Function into SQL statement.
fn prepare_function_arguments( &self, func: &FunctionCall, sql: &mut impl SqlWriter, )
fn prepare_with_query(&self, query: &WithQuery, sql: &mut impl SqlWriter)
fn prepare_with_clause( &self, with_clause: &WithClause, sql: &mut impl SqlWriter, )
fn prepare_with_clause_recursive_options( &self, with_clause: &WithClause, sql: &mut impl SqlWriter, )
fn prepare_with_clause_common_tables( &self, with_clause: &WithClause, sql: &mut impl SqlWriter, )
fn prepare_with_query_clause_common_table( &self, cte: &CommonTableExpression, sql: &mut impl SqlWriter, )
fn prepare_with_query_clause_materialization( &self, cte: &CommonTableExpression, sql: &mut impl SqlWriter, )
fn prepare_with_clause_start( &self, with_clause: &WithClause, sql: &mut impl SqlWriter, )
fn prepare_insert(&self, replace: bool, sql: &mut impl SqlWriter)
fn prepare_function_name(&self, function: &Func, sql: &mut impl SqlWriter)
Sourcefn prepare_type_ref(&self, type_name: &TypeRef, sql: &mut impl SqlWriter)
fn prepare_type_ref(&self, type_name: &TypeRef, sql: &mut impl SqlWriter)
Translate TypeRef into an SQL statement.
Sourcefn prepare_join_type(&self, join_type: &JoinType, sql: &mut impl SqlWriter)
fn prepare_join_type(&self, join_type: &JoinType, sql: &mut impl SqlWriter)
Translate JoinType into SQL statement.
fn prepare_join_type_common( &self, join_type: &JoinType, sql: &mut impl SqlWriter, )
Sourcefn prepare_order_expr(&self, order_expr: &OrderExpr, sql: &mut impl SqlWriter)
fn prepare_order_expr(&self, order_expr: &OrderExpr, sql: &mut impl SqlWriter)
Translate OrderExpr into SQL statement.
Sourcefn prepare_join_on(&self, join_on: &JoinOn, sql: &mut impl SqlWriter)
fn prepare_join_on(&self, join_on: &JoinOn, sql: &mut impl SqlWriter)
Translate JoinOn into SQL statement.
Sourcefn prepare_order(&self, order_expr: &OrderExpr, sql: &mut impl SqlWriter)
fn prepare_order(&self, order_expr: &OrderExpr, sql: &mut impl SqlWriter)
Translate Order into SQL statement.
Sourcefn prepare_field_order(
&self,
order_expr: &OrderExpr,
values: &Values,
sql: &mut impl SqlWriter,
)
fn prepare_field_order( &self, order_expr: &OrderExpr, values: &Values, sql: &mut impl SqlWriter, )
Translate Order::Field into SQL statement
Sourcefn prepare_constant(&self, value: &Value, sql: &mut impl SqlWriter)
fn prepare_constant(&self, value: &Value, sql: &mut impl SqlWriter)
Write Value inline.
Sourcefn prepare_values_list(
&self,
value_tuples: &[ValueTuple],
sql: &mut impl SqlWriter,
)
fn prepare_values_list( &self, value_tuples: &[ValueTuple], sql: &mut impl SqlWriter, )
Translate a &[ValueTuple] into a VALUES list.
Sourcefn prepare_tuple(&self, exprs: &[Expr], sql: &mut impl SqlWriter)
fn prepare_tuple(&self, exprs: &[Expr], sql: &mut impl SqlWriter)
Translate Expr::Tuple into SQL statement.
Sourcefn prepare_keyword(&self, keyword: &Keyword, sql: &mut impl SqlWriter)
fn prepare_keyword(&self, keyword: &Keyword, sql: &mut impl SqlWriter)
Translate Keyword into SQL statement.
Sourcefn value_to_string(&self, v: &Value) -> String
fn value_to_string(&self, v: &Value) -> String
Convert a SQL value into syntax-specific string
fn value_to_string_common(&self, v: &Value) -> String
fn prepare_on_conflict_action_common( &self, on_conflict_action: &Option<OnConflictAction>, sql: &mut impl SqlWriter, )
fn write_string_quoted(&self, string: &str, buffer: &mut impl Write)
Sourcefn insert_default_keyword(&self) -> &str
fn insert_default_keyword(&self) -> &str
The keywords for insert default row.
Sourcefn insert_default_values(&self, num_rows: u32, sql: &mut impl SqlWriter)
fn insert_default_values(&self, num_rows: u32, sql: &mut impl SqlWriter)
Write insert default rows expression.
Sourcefn prepare_constant_true(&self, sql: &mut impl SqlWriter)
fn prepare_constant_true(&self, sql: &mut impl SqlWriter)
Write TRUE constant
Sourcefn prepare_constant_false(&self, sql: &mut impl SqlWriter)
fn prepare_constant_false(&self, sql: &mut impl SqlWriter)
Write FALSE constant
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementors§
impl QueryBuilder for MysqlQueryBuilder
backend-mysql only.impl QueryBuilder for PostgresQueryBuilder
backend-postgres only.impl QueryBuilder for SqliteQueryBuilder
backend-sqlite only.