MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / convert_assignments

Function convert_assignments

nodedb-sql/src/planner/dml_update_delete.rs:272–297  ·  view source on GitHub ↗

Convert `update.assignments` into `Vec<(col, SqlExpr)>`.

(assignments: &[ast::Assignment])

Source from the content-addressed store, hash-verified

270
271/// Convert `update.assignments` into `Vec<(col, SqlExpr)>`.
272fn convert_assignments(assignments: &[ast::Assignment]) -> Result<Vec<(String, SqlExpr)>> {
273 assignments
274 .iter()
275 .map(|a| {
276 let col = match &a.target {
277 ast::AssignmentTarget::ColumnName(name) => {
278 if name.0.len() > 1 {
279 return Err(SqlError::Unsupported {
280 detail: format!(
281 "qualified column name in SET target: {SCHEMA_QUALIFIED_MSG}"
282 ),
283 });
284 }
285 normalize_object_name_checked(name)?
286 }
287 ast::AssignmentTarget::Tuple(names) => names
288 .iter()
289 .map(normalize_object_name_checked)
290 .collect::<Result<Vec<_>>>()?
291 .join(","),
292 };
293 let val = convert_expr(&a.value)?;
294 Ok((col, val))
295 })
296 .collect()
297}
298
299/// Plan a DELETE statement.
300pub fn plan_delete(stmt: &ast::Statement, catalog: &dyn SqlCatalog) -> Result<Vec<SqlPlan>> {

Callers 2

plan_updateFunction · 0.85
plan_update_fromFunction · 0.85

Calls 6

convert_exprFunction · 0.85
collectMethod · 0.80
joinMethod · 0.80
iterMethod · 0.45
lenMethod · 0.45

Tested by

no test coverage detected