File tree Expand file tree Collapse file tree 3 files changed +31
-2
lines changed
Expand file tree Collapse file tree 3 files changed +31
-2
lines changed Original file line number Diff line number Diff line change @@ -1027,7 +1027,7 @@ pub enum Expr {
10271027 /// [(1)]: https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html#function_match
10281028 MatchAgainst {
10291029 /// `(<col>, <col>, ...)`.
1030- columns : Vec < Ident > ,
1030+ columns : Vec < ObjectName > ,
10311031 /// `<expr>`.
10321032 match_value : Value ,
10331033 /// `<search modifier>`
Original file line number Diff line number Diff line change @@ -2704,7 +2704,7 @@ impl<'a> Parser<'a> {
27042704 /// This method will raise an error if the column list is empty or with invalid identifiers,
27052705 /// the match expression is not a literal string, or if the search modifier is not valid.
27062706 pub fn parse_match_against(&mut self) -> Result<Expr, ParserError> {
2707- let columns = self.parse_parenthesized_column_list (Mandatory, false)?;
2707+ let columns = self.parse_parenthesized_qualified_column_list (Mandatory, false)?;
27082708
27092709 self.expect_keyword_is(Keyword::AGAINST)?;
27102710
Original file line number Diff line number Diff line change @@ -3454,3 +3454,32 @@ fn parse_cast_integers() {
34543454 . run_parser_method ( "CAST(foo AS UNSIGNED INTEGER(3))" , |p| p. parse_expr ( ) )
34553455 . expect_err ( "CAST doesn't allow display width" ) ;
34563456}
3457+
3458+ #[ test]
3459+ fn parse_match_against_with_alias ( ) {
3460+ let sql = "SELECT tbl.ProjectID FROM surveys.tbl1 AS tbl WHERE MATCH (tbl.ReferenceID) AGAINST ('AAA' IN BOOLEAN MODE)" ;
3461+ match mysql ( ) . verified_stmt ( sql) {
3462+ Statement :: Query ( query) => match * query. body {
3463+ SetExpr :: Select ( select) => match select. selection {
3464+ Some ( Expr :: MatchAgainst {
3465+ columns,
3466+ match_value,
3467+ opt_search_modifier,
3468+ } ) => {
3469+ assert_eq ! (
3470+ columns,
3471+ vec![ ObjectName :: from( vec![
3472+ Ident :: new( "tbl" ) ,
3473+ Ident :: new( "ReferenceID" )
3474+ ] ) ]
3475+ ) ;
3476+ assert_eq ! ( match_value, Value :: SingleQuotedString ( "AAA" . to_owned( ) ) ) ;
3477+ assert_eq ! ( opt_search_modifier, Some ( SearchModifier :: InBooleanMode ) ) ;
3478+ }
3479+ _ => unreachable ! ( ) ,
3480+ } ,
3481+ _ => unreachable ! ( ) ,
3482+ } ,
3483+ _ => unreachable ! ( ) ,
3484+ }
3485+ }
You can’t perform that action at this time.
0 commit comments