Trait diesel::backend::SqlDialect

source ·
pub trait SqlDialect: TrustedBackend {
    type ReturningClause;
    type OnConflictClause;
    type InsertWithDefaultKeyword;
    type BatchInsertSupport;
    type ConcatClause;
    type DefaultValueClauseForInsert;
    type EmptyFromClauseSyntax;
    type ExistsSyntax;
    type ArrayComparison;
    type SelectStatementSyntax;
    type AliasSyntax;
}
Expand description

This trait provides various options to configure the generated SQL for a specific backend.

Accessing anything from this trait is considered to be part of the public API. Implementing this trait is not considered to be part of diesel’s public API, as future versions of diesel may add additional associated constants here.

Each associated type is used to configure the behaviour of one or more QueryFragment implementations by providing a custom QueryFragment<YourBackend, YourSpecialSyntaxType> implementation to specialize on generic QueryFragment<DB, DB::AssociatedType> implementations.

Required Associated Types§

source

type ReturningClause

Configures how this backend supports RETURNING clauses

This allows backends to opt in RETURNING clause support and to provide a custom QueryFragment implementation for ReturningClause

source

type OnConflictClause

Configures how this backend supports ON CONFLICT clauses

This allows backends to opt in ON CONFLICT clause support

source

type InsertWithDefaultKeyword

Configures how this backend handles the bare DEFAULT keyword for inserting the default value in a INSERT INTO VALUES clause

This allows backends to opt in support for DEFAULT value expressions for insert statements

source

type BatchInsertSupport

Configures how this backend handles Batch insert statements

This allows backends to provide a custom QueryFragment implementation for BatchInsert

source

type ConcatClause

Configures how this backend handles the Concat clauses in select statements.

This allows backends to provide a custom QueryFragment implementation for Concat

source

type DefaultValueClauseForInsert

Configures how this backend handles the DEFAULT VALUES clause for insert statements.

This allows backends to provide a custom QueryFragment implementation for DefaultValues

source

type EmptyFromClauseSyntax

Configures how this backend handles empty FROM clauses for select statements.

This allows backends to provide a custom QueryFragment implementation for NoFromClause

source

type ExistsSyntax

Configures how this backend handles EXISTS() expressions.

This allows backends to provide a custom QueryFragment implementation for Exists

source

type ArrayComparison

Configures how this backend handles IN() and NOT IN() expressions.

This allows backends to provide custom QueryFragment implementations for In, NotIn and Many

source

type SelectStatementSyntax

Configures how this backend structures SELECT queries

This allows backends to provide custom QueryFragment implementations for SelectStatement and BoxedSelectStatement SelectStatement and BoxedSelectStatement

source

type AliasSyntax

Configures how this backend structures SELECT queries

This allows backends to provide custom QueryFragment implementations for Alias<T>

Implementors§

source§

impl SqlDialect for Mysql

Available on crate feature mysql_backend only.
§

type ReturningClause = DoesNotSupportReturningClause

§

type OnConflictClause = MysqlOnConflictClause

§

type InsertWithDefaultKeyword = IsoSqlDefaultKeyword

§

type BatchInsertSupport = PostgresLikeBatchInsertSupport

§

type DefaultValueClauseForInsert = MysqlStyleDefaultValueClause

§

type EmptyFromClauseSyntax = AnsiSqlFromClauseSyntax

§

type SelectStatementSyntax = AnsiSqlSelectStatement

§

type ExistsSyntax = AnsiSqlExistsSyntax

§

type ArrayComparison = AnsiSqlArrayComparison

§

type ConcatClause = MysqlConcatClause

§

type AliasSyntax = AsAliasSyntax

source§

impl SqlDialect for Pg

Available on crate feature postgres_backend only.
§

type ReturningClause = PgLikeReturningClause

§

type OnConflictClause = PgOnConflictClause

§

type InsertWithDefaultKeyword = IsoSqlDefaultKeyword

§

type BatchInsertSupport = PostgresLikeBatchInsertSupport

§

type ConcatClause = ConcatWithPipesClause

§

type DefaultValueClauseForInsert = AnsiDefaultValueClause

§

type EmptyFromClauseSyntax = AnsiSqlFromClauseSyntax

§

type SelectStatementSyntax = AnsiSqlSelectStatement

§

type ExistsSyntax = AnsiSqlExistsSyntax

§

type ArrayComparison = PgStyleArrayComparison

§

type AliasSyntax = AsAliasSyntax

source§

impl SqlDialect for Sqlite

Available on crate feature sqlite only.
§

type ReturningClause = DoesNotSupportReturningClause

§

type OnConflictClause = SqliteOnConflictClause

§

type InsertWithDefaultKeyword = DoesNotSupportDefaultKeyword

§

type BatchInsertSupport = SqliteBatchInsert

§

type ConcatClause = ConcatWithPipesClause

§

type DefaultValueClauseForInsert = AnsiDefaultValueClause

§

type EmptyFromClauseSyntax = AnsiSqlFromClauseSyntax

§

type SelectStatementSyntax = AnsiSqlSelectStatement

§

type ExistsSyntax = AnsiSqlExistsSyntax

§

type ArrayComparison = AnsiSqlArrayComparison

§

type AliasSyntax = AsAliasSyntax