pub struct GenericSqlWriter;Expand description
Fallback generic SQL writer (closest to PostgreSQL / DuckDB conventions).
Implementations§
Trait Implementations§
Source§impl SqlWriter for GenericSqlWriter
impl SqlWriter for GenericSqlWriter
fn as_dyn(&self) -> &dyn SqlWriter
Source§fn alias_declaration(&self, context: &mut Context) -> bool
fn alias_declaration(&self, context: &mut Context) -> bool
Whether the current fragment context allows alias declaration.
Source§fn write_escaped(
&self,
_context: &mut Context,
out: &mut String,
value: &str,
search: char,
replace: &str,
)
fn write_escaped( &self, _context: &mut Context, out: &mut String, value: &str, search: char, replace: &str, )
Escape occurrences of
search char with replace while copying into buffer.Source§fn write_identifier_quoted(
&self,
context: &mut Context,
out: &mut String,
value: &str,
)
fn write_identifier_quoted( &self, context: &mut Context, out: &mut String, value: &str, )
Quote identifiers (“name”) doubling inner quotes.
Source§fn write_table_ref(
&self,
context: &mut Context,
out: &mut String,
value: &TableRef,
)
fn write_table_ref( &self, context: &mut Context, out: &mut String, value: &TableRef, )
Render a table reference with optional alias.
Source§fn write_column_ref(
&self,
context: &mut Context,
out: &mut String,
value: &ColumnRef,
)
fn write_column_ref( &self, context: &mut Context, out: &mut String, value: &ColumnRef, )
Render a column reference optionally qualifying with schema/table.
Source§fn write_column_overridden_type(
&self,
_context: &mut Context,
out: &mut String,
_column: &ColumnDef,
types: &BTreeMap<&'static str, &'static str>,
)
fn write_column_overridden_type( &self, _context: &mut Context, out: &mut String, _column: &ColumnDef, types: &BTreeMap<&'static str, &'static str>, )
Render the SQL overridden type.
Source§fn write_column_type(
&self,
context: &mut Context,
out: &mut String,
value: &Value,
)
fn write_column_type( &self, context: &mut Context, out: &mut String, value: &Value, )
Render the SQL type for a
Value prototype.Source§fn write_value(&self, context: &mut Context, out: &mut String, value: &Value)
fn write_value(&self, context: &mut Context, out: &mut String, value: &Value)
Render a concrete value (including proper quoting / escaping).
Source§fn write_value_none(&self, context: &mut Context, out: &mut String)
fn write_value_none(&self, context: &mut Context, out: &mut String)
Render NULL literal.
Source§fn write_value_bool(&self, context: &mut Context, out: &mut String, value: bool)
fn write_value_bool(&self, context: &mut Context, out: &mut String, value: bool)
Render boolean literal.
Source§fn write_value_infinity(
&self,
context: &mut Context,
out: &mut String,
negative: bool,
)
fn write_value_infinity( &self, context: &mut Context, out: &mut String, negative: bool, )
Render +/- INF via CAST for dialect portability.
Source§fn write_value_nan(&self, context: &mut Context, out: &mut String)
fn write_value_nan(&self, context: &mut Context, out: &mut String)
Render NaN via CAST for dialect portability.
Source§fn write_value_string(
&self,
context: &mut Context,
out: &mut String,
value: &str,
)
fn write_value_string( &self, context: &mut Context, out: &mut String, value: &str, )
Render and escape a string literal using single quotes.
Source§fn write_value_blob(
&self,
context: &mut Context,
out: &mut String,
value: &[u8],
)
fn write_value_blob( &self, context: &mut Context, out: &mut String, value: &[u8], )
Render a blob literal using hex escapes.
Source§fn write_value_date(
&self,
context: &mut Context,
out: &mut String,
value: &Date,
timestamp: bool,
)
fn write_value_date( &self, context: &mut Context, out: &mut String, value: &Date, timestamp: bool, )
Render a DATE literal (optionally as part of TIMESTAMP composition).
Source§fn write_value_time(
&self,
context: &mut Context,
out: &mut String,
value: &Time,
timestamp: bool,
)
fn write_value_time( &self, context: &mut Context, out: &mut String, value: &Time, timestamp: bool, )
Render a TIME literal (optionally as part of TIMESTAMP composition).
Source§fn write_value_timestamp(
&self,
context: &mut Context,
out: &mut String,
value: &PrimitiveDateTime,
)
fn write_value_timestamp( &self, context: &mut Context, out: &mut String, value: &PrimitiveDateTime, )
Render a TIMESTAMP literal.
Source§fn write_value_timestamptz(
&self,
context: &mut Context,
out: &mut String,
value: &OffsetDateTime,
)
fn write_value_timestamptz( &self, context: &mut Context, out: &mut String, value: &OffsetDateTime, )
Render a TIMESTAMPTZ literal.
Source§fn value_interval_units(&self) -> &[(&str, i128)]
fn value_interval_units(&self) -> &[(&str, i128)]
Ordered units used to decompose intervals.
Source§fn write_value_interval(
&self,
context: &mut Context,
out: &mut String,
value: &Interval,
)
fn write_value_interval( &self, context: &mut Context, out: &mut String, value: &Interval, )
Render INTERVAL literal using largest representative units.
Source§fn write_value_uuid(
&self,
context: &mut Context,
out: &mut String,
value: &Uuid,
)
fn write_value_uuid( &self, context: &mut Context, out: &mut String, value: &Uuid, )
Render UUID literal.
Source§fn write_value_list(
&self,
context: &mut Context,
out: &mut String,
value: Either<&Box<[Value]>, &Vec<Value>>,
_ty: &Value,
_elem_ty: &Value,
)
fn write_value_list( &self, context: &mut Context, out: &mut String, value: Either<&Box<[Value]>, &Vec<Value>>, _ty: &Value, _elem_ty: &Value, )
Render list/array literal.
Source§fn write_value_map(
&self,
context: &mut Context,
out: &mut String,
value: &HashMap<Value, Value>,
)
fn write_value_map( &self, context: &mut Context, out: &mut String, value: &HashMap<Value, Value>, )
Render map literal.
Source§fn write_value_struct(
&self,
context: &mut Context,
out: &mut String,
value: &Vec<(String, Value)>,
)
fn write_value_struct( &self, context: &mut Context, out: &mut String, value: &Vec<(String, Value)>, )
Render struct literal.
Source§fn expression_unary_op_precedence(&self, value: &UnaryOpType) -> i32
fn expression_unary_op_precedence(&self, value: &UnaryOpType) -> i32
Precedence table for unary operators.
Source§fn expression_binary_op_precedence(&self, value: &BinaryOpType) -> i32
fn expression_binary_op_precedence(&self, value: &BinaryOpType) -> i32
Precedence table for binary operators.
Source§fn write_expression_operand(
&self,
context: &mut Context,
out: &mut String,
value: &Operand<'_>,
)
fn write_expression_operand( &self, context: &mut Context, out: &mut String, value: &Operand<'_>, )
Render an operand (literal / variable / nested expression).
Source§fn write_expression_operand_question_mark(
&self,
_context: &mut Context,
out: &mut String,
)
fn write_expression_operand_question_mark( &self, _context: &mut Context, out: &mut String, )
Render parameter placeholder (dialect may override).
Source§fn write_expression_unary_op(
&self,
context: &mut Context,
out: &mut String,
value: &UnaryOp<&dyn Expression>,
)
fn write_expression_unary_op( &self, context: &mut Context, out: &mut String, value: &UnaryOp<&dyn Expression>, )
Render unary operator expression.
Source§fn write_expression_binary_op(
&self,
context: &mut Context,
out: &mut String,
value: &BinaryOp<&dyn Expression, &dyn Expression>,
)
fn write_expression_binary_op( &self, context: &mut Context, out: &mut String, value: &BinaryOp<&dyn Expression, &dyn Expression>, )
Render binary operator expression handling precedence / parenthesis.
Source§fn write_expression_ordered(
&self,
context: &mut Context,
out: &mut String,
value: &Ordered<&dyn Expression>,
)
fn write_expression_ordered( &self, context: &mut Context, out: &mut String, value: &Ordered<&dyn Expression>, )
Render ordered expression inside ORDER BY.
Source§fn write_join_type(
&self,
_context: &mut Context,
out: &mut String,
join_type: &JoinType,
)
fn write_join_type( &self, _context: &mut Context, out: &mut String, join_type: &JoinType, )
Render join keyword(s) for the given join type.
Source§fn write_join(
&self,
context: &mut Context,
out: &mut String,
join: &Join<&dyn DataSet, &dyn DataSet, &dyn Expression>,
)
fn write_join( &self, context: &mut Context, out: &mut String, join: &Join<&dyn DataSet, &dyn DataSet, &dyn Expression>, )
Render a JOIN clause.
Source§fn write_transaction_begin(&self, out: &mut String)
fn write_transaction_begin(&self, out: &mut String)
Emit BEGIN statement.
Source§fn write_transaction_commit(&self, out: &mut String)
fn write_transaction_commit(&self, out: &mut String)
Emit COMMIT statement.
Source§fn write_transaction_rollback(&self, out: &mut String)
fn write_transaction_rollback(&self, out: &mut String)
Emit ROLLBACK statement.
Source§fn write_create_schema<E>(&self, out: &mut String, if_not_exists: bool)
fn write_create_schema<E>(&self, out: &mut String, if_not_exists: bool)
Emit CREATE SCHEMA.
Source§fn write_drop_schema<E>(&self, out: &mut String, if_exists: bool)
fn write_drop_schema<E>(&self, out: &mut String, if_exists: bool)
Emit DROP SCHEMA.
Source§fn write_create_table<E>(&self, out: &mut String, if_not_exists: bool)
fn write_create_table<E>(&self, out: &mut String, if_not_exists: bool)
Emit CREATE TABLE with columns, constraints & comments.
Source§fn write_create_table_column_fragment(
&self,
context: &mut Context,
out: &mut String,
column: &ColumnDef,
)where
Self: Sized,
fn write_create_table_column_fragment(
&self,
context: &mut Context,
out: &mut String,
column: &ColumnDef,
)where
Self: Sized,
Emit single column definition fragment.
fn write_create_table_primary_key_fragment<'a, It>( &self, context: &mut Context, out: &mut String, primary_key: It, )
Source§fn write_create_table_references_action(
&self,
_context: &mut Context,
out: &mut String,
action: &Action,
)
fn write_create_table_references_action( &self, _context: &mut Context, out: &mut String, action: &Action, )
Emit referential action keyword.
fn write_column_comment_inline(
&self,
_context: &mut Context,
_out: &mut String,
_column: &ColumnDef,
)where
Self: Sized,
Source§fn write_column_comments_statements<E>(
&self,
context: &mut Context,
out: &mut String,
)
fn write_column_comments_statements<E>( &self, context: &mut Context, out: &mut String, )
Emit COMMENT ON COLUMN statements for columns carrying comments.
Source§fn write_drop_table<E>(&self, out: &mut String, if_exists: bool)
fn write_drop_table<E>(&self, out: &mut String, if_exists: bool)
Emit DROP TABLE statement.
Source§fn write_select<Item, Cols, Data, Expr>(
&self,
out: &mut String,
columns: Cols,
from: &Data,
condition: Expr,
limit: Option<u32>,
)where
Self: Sized,
Item: Expression,
Cols: IntoIterator<Item = Item> + Clone,
Data: DataSet,
Expr: Expression,
fn write_select<Item, Cols, Data, Expr>(
&self,
out: &mut String,
columns: Cols,
from: &Data,
condition: Expr,
limit: Option<u32>,
)where
Self: Sized,
Item: Expression,
Cols: IntoIterator<Item = Item> + Clone,
Data: DataSet,
Expr: Expression,
Emit SELECT statement (projection, FROM, WHERE, ORDER, LIMIT).
Source§fn write_insert<'b, E>(
&self,
out: &mut String,
entities: impl IntoIterator<Item = &'b E>,
update: bool,
)
fn write_insert<'b, E>( &self, out: &mut String, entities: impl IntoIterator<Item = &'b E>, update: bool, )
Emit INSERT (single/multi-row) optionally with ON CONFLICT DO UPDATE.
Source§fn write_insert_update_fragment<'a, E>(
&self,
context: &mut Context,
out: &mut String,
columns: impl Iterator<Item = &'a ColumnDef>,
)
fn write_insert_update_fragment<'a, E>( &self, context: &mut Context, out: &mut String, columns: impl Iterator<Item = &'a ColumnDef>, )
Emit ON CONFLICT DO UPDATE fragment for upsert.
Source§fn write_delete<E>(&self, out: &mut String, condition: &impl Expression)
fn write_delete<E>(&self, out: &mut String, condition: &impl Expression)
Emit DELETE statement with WHERE clause.
Auto Trait Implementations§
impl Freeze for GenericSqlWriter
impl RefUnwindSafe for GenericSqlWriter
impl Send for GenericSqlWriter
impl Sync for GenericSqlWriter
impl Unpin for GenericSqlWriter
impl UnwindSafe for GenericSqlWriter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more