File tree Expand file tree Collapse file tree 2 files changed +24
-2
lines changed
Expand file tree Collapse file tree 2 files changed +24
-2
lines changed Original file line number Diff line number Diff line change @@ -3485,10 +3485,10 @@ impl<'a> Parser<'a> {
34853485 Token::DuckIntDiv if dialect_is!(dialect is DuckDbDialect | GenericDialect) => {
34863486 Some(BinaryOperator::DuckIntegerDivide)
34873487 }
3488- Token::ShiftLeft if dialect_is!(dialect is PostgreSqlDialect | DuckDbDialect | GenericDialect | RedshiftSqlDialect) => {
3488+ Token::ShiftLeft if dialect_is!(dialect is PostgreSqlDialect | DuckDbDialect | GenericDialect | RedshiftSqlDialect | MySqlDialect ) => {
34893489 Some(BinaryOperator::PGBitwiseShiftLeft)
34903490 }
3491- Token::ShiftRight if dialect_is!(dialect is PostgreSqlDialect | DuckDbDialect | GenericDialect | RedshiftSqlDialect) => {
3491+ Token::ShiftRight if dialect_is!(dialect is PostgreSqlDialect | DuckDbDialect | GenericDialect | RedshiftSqlDialect | MySqlDialect ) => {
34923492 Some(BinaryOperator::PGBitwiseShiftRight)
34933493 }
34943494 Token::Sharp if dialect_is!(dialect is PostgreSqlDialect | RedshiftSqlDialect) => {
Original file line number Diff line number Diff line change @@ -3765,6 +3765,28 @@ fn parse_logical_xor() {
37653765 ) ;
37663766}
37673767
3768+ #[ test]
3769+ fn parse_bitwise_shift_ops ( ) {
3770+ let sql = "SELECT 1 << 2, 8 >> 3" ;
3771+ let select = mysql ( ) . verified_only_select ( sql) ;
3772+ assert_eq ! (
3773+ SelectItem :: UnnamedExpr ( Expr :: BinaryOp {
3774+ left: Box :: new( Expr :: Value ( ( number( "1" ) ) . with_empty_span( ) ) ) ,
3775+ op: BinaryOperator :: PGBitwiseShiftLeft ,
3776+ right: Box :: new( Expr :: Value ( ( number( "2" ) ) . with_empty_span( ) ) ) ,
3777+ } ) ,
3778+ select. projection[ 0 ]
3779+ ) ;
3780+ assert_eq ! (
3781+ SelectItem :: UnnamedExpr ( Expr :: BinaryOp {
3782+ left: Box :: new( Expr :: Value ( ( number( "8" ) ) . with_empty_span( ) ) ) ,
3783+ op: BinaryOperator :: PGBitwiseShiftRight ,
3784+ right: Box :: new( Expr :: Value ( ( number( "3" ) ) . with_empty_span( ) ) ) ,
3785+ } ) ,
3786+ select. projection[ 1 ]
3787+ ) ;
3788+ }
3789+
37683790#[ test]
37693791fn parse_bitstring_literal ( ) {
37703792 let select = mysql_and_generic ( ) . verified_only_select ( "SELECT B'111'" ) ;
You can’t perform that action at this time.
0 commit comments