diff --git a/Cargo.lock b/Cargo.lock index 3e9fd0224a502..91dd76c714b90 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5876,7 +5876,7 @@ dependencies = [ [[package]] name = "sqlparser" version = "0.62.0" -source = "git+https://github.com/Embucket/datafusion-sqlparser-rs.git?rev=65d8fceedc4ebd0933857910a3c56b2e8be6369f#65d8fceedc4ebd0933857910a3c56b2e8be6369f" +source = "git+https://github.com/Embucket/datafusion-sqlparser-rs.git?rev=ff0378d5b2205e839360ab473efe9bcfa520f65f#ff0378d5b2205e839360ab473efe9bcfa520f65f" dependencies = [ "log", "recursive", @@ -5886,7 +5886,7 @@ dependencies = [ [[package]] name = "sqlparser_derive" version = "0.5.0" -source = "git+https://github.com/Embucket/datafusion-sqlparser-rs.git?rev=65d8fceedc4ebd0933857910a3c56b2e8be6369f#65d8fceedc4ebd0933857910a3c56b2e8be6369f" +source = "git+https://github.com/Embucket/datafusion-sqlparser-rs.git?rev=ff0378d5b2205e839360ab473efe9bcfa520f65f#ff0378d5b2205e839360ab473efe9bcfa520f65f" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 99bddd22e763b..302eb54e33eac 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -196,7 +196,7 @@ regex = "1.12" rstest = "0.26.1" serde_json = "1" sha2 = "^0.11.0" -sqlparser = { git = "https://github.com/Embucket/datafusion-sqlparser-rs.git", rev = "65d8fceedc4ebd0933857910a3c56b2e8be6369f", default-features = false, features = [ +sqlparser = { git = "https://github.com/Embucket/datafusion-sqlparser-rs.git", rev = "ff0378d5b2205e839360ab473efe9bcfa520f65f", default-features = false, features = [ "std", "visitor", ] } diff --git a/datafusion/sql/src/statement.rs b/datafusion/sql/src/statement.rs index 11c86a350ae59..d6cd9ba03d608 100644 --- a/datafusion/sql/src/statement.rs +++ b/datafusion/sql/src/statement.rs @@ -2723,8 +2723,10 @@ impl SqlToRel<'_, S> { "MERGE UPDATE DELETE WHERE predicates are not supported" ); } - let assignments = update_expr - .assignments + let ast::MergeUpdateKind::Set(assignments) = update_expr.kind else { + return not_impl_err!("MERGE UPDATE ALL BY NAME is not supported"); + }; + let assignments = assignments .into_iter() .map(|assign| { let col_name = match &assign.target { @@ -2802,6 +2804,11 @@ impl SqlToRel<'_, S> { ast::MergeInsertKind::Row => { return not_impl_err!("MERGE INSERT ROW is not supported"); } + ast::MergeInsertKind::AllByName => { + return not_impl_err!( + "MERGE INSERT ALL BY NAME is not supported" + ); + } }; MergeIntoAction::Insert { columns, values }