(&mut self)
| 3783 | } |
| 3784 | |
| 3785 | fn parse_mysql_connection_option(&mut self) -> Result<MySqlConfigOption<Raw>, ParserError> { |
| 3786 | match self.expect_one_of_keywords(&[DETAILS, TEXT, EXCLUDE, IGNORE])? { |
| 3787 | DETAILS => Ok(MySqlConfigOption { |
| 3788 | name: MySqlConfigOptionName::Details, |
| 3789 | value: self.parse_optional_option_value()?, |
| 3790 | }), |
| 3791 | TEXT => { |
| 3792 | self.expect_keyword(COLUMNS)?; |
| 3793 | |
| 3794 | let _ = self.consume_token(&Token::Eq); |
| 3795 | |
| 3796 | let value = self |
| 3797 | .parse_option_sequence(Parser::parse_item_name)? |
| 3798 | .map(|inner| { |
| 3799 | WithOptionValue::Sequence( |
| 3800 | inner |
| 3801 | .into_iter() |
| 3802 | .map(WithOptionValue::UnresolvedItemName) |
| 3803 | .collect_vec(), |
| 3804 | ) |
| 3805 | }); |
| 3806 | |
| 3807 | Ok(MySqlConfigOption { |
| 3808 | name: MySqlConfigOptionName::TextColumns, |
| 3809 | value, |
| 3810 | }) |
| 3811 | } |
| 3812 | // IGNORE is historical syntax for the option. |
| 3813 | EXCLUDE | IGNORE => { |
| 3814 | self.expect_keyword(COLUMNS)?; |
| 3815 | |
| 3816 | let _ = self.consume_token(&Token::Eq); |
| 3817 | |
| 3818 | let value = self |
| 3819 | .parse_option_sequence(Parser::parse_item_name)? |
| 3820 | .map(|inner| { |
| 3821 | WithOptionValue::Sequence( |
| 3822 | inner |
| 3823 | .into_iter() |
| 3824 | .map(WithOptionValue::UnresolvedItemName) |
| 3825 | .collect_vec(), |
| 3826 | ) |
| 3827 | }); |
| 3828 | |
| 3829 | Ok(MySqlConfigOption { |
| 3830 | name: MySqlConfigOptionName::ExcludeColumns, |
| 3831 | value, |
| 3832 | }) |
| 3833 | } |
| 3834 | _ => unreachable!(), |
| 3835 | } |
| 3836 | } |
| 3837 | |
| 3838 | fn parse_sql_server_connection_option( |
| 3839 | &mut self, |
nothing calls this directly
no test coverage detected