1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
use super::query_builder::MysqlQueryBuilder;
use super::MysqlValue;
use crate::backend::*;
use crate::query_builder::bind_collector::RawBytesBindCollector;
use crate::sql_types::TypeMetadata;
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, Default)]
pub struct Mysql;
#[allow(missing_debug_implementations)]
#[derive(Debug, Hash, PartialEq, Eq, Clone, Copy)]
#[non_exhaustive]
pub enum MysqlType {
Tiny,
UnsignedTiny,
Short,
UnsignedShort,
Long,
UnsignedLong,
LongLong,
UnsignedLongLong,
Float,
Double,
Numeric,
Time,
Date,
DateTime,
Timestamp,
String,
Blob,
Bit,
Set,
Enum,
}
impl Backend for Mysql {
type QueryBuilder = MysqlQueryBuilder;
}
impl<'a> HasBindCollector<'a> for Mysql {
type BindCollector = RawBytesBindCollector<Self>;
}
impl<'a> HasRawValue<'a> for Mysql {
type RawValue = MysqlValue<'a>;
}
impl TypeMetadata for Mysql {
type TypeMetadata = MysqlType;
type MetadataLookup = ();
}
impl SqlDialect for Mysql {
type ReturningClause = sql_dialect::returning_clause::DoesNotSupportReturningClause;
type OnConflictClause = sql_dialect::on_conflict_clause::DoesNotSupportOnConflictClause;
type InsertWithDefaultKeyword = sql_dialect::default_keyword_for_insert::IsoSqlDefaultKeyword;
type BatchInsertSupport = sql_dialect::batch_insert_support::PostgresLikeBatchInsertSupport;
type DefaultValueClauseForInsert = MysqlStyleDefaultValueClause;
type EmptyFromClauseSyntax = sql_dialect::from_clause_syntax::AnsiSqlFromClauseSyntax;
type SelectStatementSyntax = sql_dialect::select_statement_syntax::AnsiSqlSelectStatement;
type ExistsSyntax = sql_dialect::exists_syntax::AnsiSqlExistsSyntax;
type ArrayComparison = sql_dialect::array_comparison::AnsiSqlArrayComparison;
type ConcatClause = MysqlConcatClause;
}
impl DieselReserveSpecialization for Mysql {}
impl TrustedBackend for Mysql {}
#[derive(Debug, Clone, Copy)]
pub struct MysqlStyleDefaultValueClause;
#[derive(Debug, Clone, Copy)]
pub struct MysqlConcatClause;