@@ -2771,7 +2771,7 @@ impl<'a> Parser<'a> {
27712771
27722772 if self.dialect.supports_dictionary_syntax() {
27732773 self.prev_token(); // Put back the '{'
2774- return self.parse_duckdb_and_clickhouse_struct_literal ();
2774+ return self.parse_dictionary ();
27752775 }
27762776
27772777 self.expected("an expression", token)
@@ -3157,13 +3157,10 @@ impl<'a> Parser<'a> {
31573157 ///
31583158 /// [dictionary]: https://duckdb.org/docs/sql/data_types/struct#creating-structs
31593159 /// [map]: https://clickhouse.com/docs/operations/settings/settings#additional_table_filters
3160- fn parse_duckdb_and_clickhouse_struct_literal (&mut self) -> Result<Expr, ParserError> {
3160+ fn parse_dictionary (&mut self) -> Result<Expr, ParserError> {
31613161 self.expect_token(&Token::LBrace)?;
31623162
3163- let fields = self.parse_comma_separated0(
3164- Self::parse_duckdb_and_clickhouse_struct_field,
3165- Token::RBrace,
3166- )?;
3163+ let fields = self.parse_comma_separated0(Self::parse_dictionary_field, Token::RBrace)?;
31673164
31683165 self.expect_token(&Token::RBrace)?;
31693166
@@ -3180,7 +3177,7 @@ impl<'a> Parser<'a> {
31803177 ///
31813178 /// [dictionary]: https://duckdb.org/docs/sql/data_types/struct#creating-structs
31823179 /// [map]: https://clickhouse.com/docs/operations/settings/settings#additional_table_filters
3183- fn parse_duckdb_and_clickhouse_struct_field (&mut self) -> Result<DictionaryField, ParserError> {
3180+ fn parse_dictionary_field (&mut self) -> Result<DictionaryField, ParserError> {
31843181 let key = self.parse_identifier()?;
31853182
31863183 self.expect_token(&Token::Colon)?;
@@ -11194,12 +11191,7 @@ impl<'a> Parser<'a> {
1119411191 let key_values = self.parse_comma_separated(|p| {
1119511192 let key = p.parse_identifier()?;
1119611193 p.expect_token(&Token::Eq)?;
11197-
11198- let value = if p.peek_token_ref().token == Token::LBrace {
11199- p.parse_duckdb_and_clickhouse_struct_literal()?
11200- } else {
11201- Expr::Value(p.parse_value()?)
11202- };
11194+ let value = p.parse_expr()?;
1120311195 Ok(Setting { key, value })
1120411196 })?;
1120511197 Some(key_values)
0 commit comments