let update_index = fun index ~name ~columns ~unique ->
if index.idx_name <> name then begin
validate_name_exn name;
begin
match index_by_name_opt index.idx_db name with
| None -> index.idx_name <- name
| Some _ -> raise (Duplicated_name name)
end;
end;
if columns = [] then
raise (Invalid_args "An index must contain at least one column");
index.idx_name <- name;
index.idx_columns <- columns;
index.idx_unique <- unique