A statement's bindings as ctx.storage.sql takes them: positional. Drupal binds by name (the update branch of merge()), so names are rewritten in SQL order; a missing value throws.
ctx.storage.sql
merge()
A statement's bindings as
ctx.storage.sqltakes them: positional. Drupal binds by name (the update branch ofmerge()), so names are rewritten in SQL order; a missing value throws.