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

Method parse_pg_connection_option

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

Source from the content-addressed store, hash-verified

3729 }
3730
3731 fn parse_pg_connection_option(&mut self) -> Result<PgConfigOption<Raw>, ParserError> {
3732 let name = match self.expect_one_of_keywords(&[DETAILS, PUBLICATION, TEXT, EXCLUDE])? {
3733 DETAILS => PgConfigOptionName::Details,
3734 PUBLICATION => PgConfigOptionName::Publication,
3735 TEXT => {
3736 self.expect_keyword(COLUMNS)?;
3737
3738 let _ = self.consume_token(&Token::Eq);
3739
3740 let value = self
3741 .parse_option_sequence(Parser::parse_item_name)?
3742 .map(|inner| {
3743 WithOptionValue::Sequence(
3744 inner
3745 .into_iter()
3746 .map(WithOptionValue::UnresolvedItemName)
3747 .collect_vec(),
3748 )
3749 });
3750
3751 return Ok(PgConfigOption {
3752 name: PgConfigOptionName::TextColumns,
3753 value,
3754 });
3755 }
3756 EXCLUDE => {
3757 self.expect_keyword(COLUMNS)?;
3758
3759 let _ = self.consume_token(&Token::Eq);
3760
3761 let value = self
3762 .parse_option_sequence(Parser::parse_item_name)?
3763 .map(|inner| {
3764 WithOptionValue::Sequence(
3765 inner
3766 .into_iter()
3767 .map(WithOptionValue::UnresolvedItemName)
3768 .collect_vec(),
3769 )
3770 });
3771
3772 return Ok(PgConfigOption {
3773 name: PgConfigOptionName::ExcludeColumns,
3774 value,
3775 });
3776 }
3777 _ => unreachable!(),
3778 };
3779 Ok(PgConfigOption {
3780 name,
3781 value: self.parse_optional_option_value()?,
3782 })
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])? {

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