MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / parse_mysql_connection_option

Method parse_mysql_connection_option

src/sql-parser/src/parser.rs:3785–3836  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

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,

Callers

nothing calls this directly

Calls 7

expect_keywordMethod · 0.80
consume_tokenMethod · 0.80
parse_option_sequenceMethod · 0.80
mapMethod · 0.45
into_iterMethod · 0.45

Tested by

no test coverage detected