@@ -35,8 +35,7 @@ const RESERVED_FOR_TABLE_ALIAS_MYSQL: &[Keyword] = &[
3535] ;
3636
3737/// A [`Dialect`] for [MySQL](https://www.mysql.com/)
38- #[ derive( Debug , Default , Clone , Copy , PartialEq , Eq , Hash , PartialOrd , Ord ) ]
39- #[ cfg_attr( feature = "serde" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
38+ #[ derive( Debug , Default ) ]
4039pub struct MySqlDialect { }
4140
4241impl Dialect for MySqlDialect {
@@ -89,11 +88,6 @@ impl Dialect for MySqlDialect {
8988 true
9089 }
9190
92- /// see <https://dev.mysql.com/doc/refman/8.4/en/comments.html>
93- fn supports_multiline_comment_hints ( & self ) -> bool {
94- true
95- }
96-
9791 fn parse_infix (
9892 & self ,
9993 parser : & mut crate :: parser:: Parser ,
@@ -102,10 +96,14 @@ impl Dialect for MySqlDialect {
10296 ) -> Option < Result < crate :: ast:: Expr , ParserError > > {
10397 // Parse DIV as an operator
10498 if parser. parse_keyword ( Keyword :: DIV ) {
99+ let right = match parser. parse_expr ( ) {
100+ Ok ( val) => val,
101+ Err ( e) => return Some ( Err ( e) ) ,
102+ } ;
105103 Some ( Ok ( Expr :: BinaryOp {
106104 left : Box :: new ( expr. clone ( ) ) ,
107105 op : BinaryOperator :: MyIntegerDivide ,
108- right : Box :: new ( parser . parse_expr ( ) . unwrap ( ) ) ,
106+ right : Box :: new ( right ) ,
109107 } ) )
110108 } else {
111109 None
@@ -162,10 +160,6 @@ impl Dialect for MySqlDialect {
162160 true
163161 }
164162
165- fn supports_select_modifiers ( & self ) -> bool {
166- true
167- }
168-
169163 fn supports_set_names ( & self ) -> bool {
170164 true
171165 }
@@ -196,11 +190,6 @@ impl Dialect for MySqlDialect {
196190 fn supports_comment_optimizer_hint ( & self ) -> bool {
197191 true
198192 }
199-
200- /// See: <https://dev.mysql.com/doc/refman/8.4/en/create-table.html>
201- fn supports_constraint_keyword_without_name ( & self ) -> bool {
202- true
203- }
204193}
205194
206195/// `LOCK TABLES`
0 commit comments