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

Method parse_option_map

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

Source from the content-addressed store, hash-verified

5568 }
5569
5570 fn parse_option_map(
5571 &mut self,
5572 ) -> Result<Option<BTreeMap<String, WithOptionValue<Raw>>>, ParserError> {
5573 Ok(if self.parse_keyword(MAP) {
5574 self.expect_token(&Token::LBracket)?;
5575 let mut map = BTreeMap::new();
5576 loop {
5577 if let Some(Token::RBracket) = self.peek_token() {
5578 break;
5579 }
5580 let key = match self.next_token() {
5581 Some(Token::String(s)) => s,
5582 token => return self.expected(self.peek_pos(), "string", token),
5583 };
5584 self.expect_token(&Token::Arrow)?;
5585 let value = Parser::parse_option_value(self)?;
5586 map.insert(key, value);
5587 if !self.consume_token(&Token::Comma) {
5588 break;
5589 }
5590 }
5591 self.expect_token(&Token::RBracket)?;
5592 Some(map)
5593 } else {
5594 None
5595 })
5596 }
5597
5598 fn parse_option_value(&mut self) -> Result<WithOptionValue<Raw>, ParserError> {
5599 if let Some(seq) = self.parse_option_sequence(Parser::parse_option_value)? {

Callers 1

parse_option_valueMethod · 0.80

Calls 8

parse_keywordMethod · 0.80
expect_tokenMethod · 0.80
peek_tokenMethod · 0.80
next_tokenMethod · 0.80
expectedMethod · 0.80
peek_posMethod · 0.80
consume_tokenMethod · 0.80
insertMethod · 0.45

Tested by

no test coverage detected