@@ -27,15 +27,7 @@ impl Dialect for ArgusDialect {
2727pub fn parse ( sql : & str ) -> Result < Statement , String > {
2828 let dialect = ArgusDialect { } ;
2929
30- // Hack: Replace RECORDS with VALUES to satisfy sqlparser
31- // We strictly assume "RECORDS" is used for INSERT.
32- let sql_to_parse = if sql. trim ( ) . to_uppercase ( ) . starts_with ( "INSERT" ) {
33- sql. replacen ( "RECORDS" , "VALUES" , 1 ) . replacen ( "records" , "VALUES" , 1 )
34- } else {
35- sql. to_string ( )
36- } ;
37-
38- let ast = Parser :: parse_sql ( & dialect, & sql_to_parse) . map_err ( |e| e. to_string ( ) ) ?;
30+ let ast = Parser :: parse_sql ( & dialect, sql) . map_err ( |e| e. to_string ( ) ) ?;
3931
4032 if ast. len ( ) != 1 {
4133 return Err ( "Expected exactly one statement" . to_string ( ) ) ;
@@ -78,7 +70,7 @@ fn convert_insert_source(source: &Option<Box<ast::Query>>) -> Result<Vec<Value>,
7870 }
7971 Ok ( docs)
8072 }
81- _ => Err ( "INSERT expects VALUES (RECORDS) clause" . to_string ( ) ) ,
73+ _ => Err ( "INSERT expects VALUES clause" . to_string ( ) ) ,
8274 }
8375}
8476
@@ -244,7 +236,7 @@ mod tests {
244236
245237 #[ test]
246238 fn test_parse_insert ( ) {
247- let sql = r#"INSERT INTO users RECORDS `{"name": "Alice", "age": 30}`, `{"name": "Bob"}`"# ;
239+ let sql = r#"INSERT INTO users VALUES `{"name": "Alice", "age": 30}`, `{"name": "Bob"}`"# ;
248240 let stmt = parse ( sql) . unwrap ( ) ;
249241 match stmt {
250242 Statement :: Insert { collection, documents } => {
0 commit comments