MCPcopy Create free account
hub / github.com/apache/datafusion / parse_value_options

Method parse_value_options

datafusion/sql/src/parser.rs:1160–1180  ·  view source on GitHub ↗

Parses (key value) style options into a map of String --> [`Value`]. This method supports keywords as key names as well as multiple value types such as Numbers as well as Strings.

(&mut self)

Source from the content-addressed store, hash-verified

1158 /// This method supports keywords as key names as well as multiple
1159 /// value types such as Numbers as well as Strings.
1160 fn parse_value_options(&mut self) -> Result<Vec<(String, Value)>, DataFusionError> {
1161 let mut options = vec![];
1162 self.parser.expect_token(&Token::LParen)?;
1163
1164 loop {
1165 let key = self.parse_option_key()?;
1166 let value = self.parse_option_value()?;
1167 options.push((key, value));
1168 let comma = self.parser.consume_token(&Token::Comma);
1169 if self.parser.consume_token(&Token::RParen) {
1170 // Allow a trailing comma, even though it's not in standard
1171 break;
1172 } else if !comma {
1173 return self.expected(
1174 "',' or ')' after option definition",
1175 &self.parser.peek_token(),
1176 );
1177 }
1178 }
1179 Ok(options)
1180 }
1181}
1182
1183#[cfg(test)]

Callers 2

parse_copyMethod · 0.45

Calls 5

expect_tokenMethod · 0.80
parse_option_keyMethod · 0.80
parse_option_valueMethod · 0.80
expectedMethod · 0.80
pushMethod · 0.45

Tested by

no test coverage detected