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§
Sourcetype ReturningClause
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
Sourcetype OnConflictClause
type OnConflictClause
Configures how this backend supports ON CONFLICT
clauses
This allows backends to opt in ON CONFLICT
clause support
Sourcetype InsertWithDefaultKeyword
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
Sourcetype BatchInsertSupport
type BatchInsertSupport
Configures how this backend handles Batch insert statements
This allows backends to provide a custom QueryFragment
implementation for BatchInsert
Sourcetype ConcatClause
type ConcatClause
Configures how this backend handles the Concat clauses in select statements.
This allows backends to provide a custom QueryFragment
implementation for Concat
Sourcetype DefaultValueClauseForInsert
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
Sourcetype EmptyFromClauseSyntax
type EmptyFromClauseSyntax
Configures how this backend handles empty FROM
clauses for select statements.
This allows backends to provide a custom QueryFragment
implementation for NoFromClause
Sourcetype ExistsSyntax
type ExistsSyntax
Configures how this backend handles EXISTS()
expressions.
This allows backends to provide a custom QueryFragment
implementation for Exists
Sourcetype ArrayComparison
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
Sourcetype SelectStatementSyntax
type SelectStatementSyntax
Configures how this backend structures SELECT
queries
This allows backends to provide custom QueryFragment
implementations for
SelectStatement
and BoxedSelectStatement
SelectStatement
and
BoxedSelectStatement
Sourcetype AliasSyntax
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.
impl SqlDialect for Mysql
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.
impl SqlDialect for Pg
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.
impl SqlDialect for Sqlite
sqlite
only.