···9393 all_results.deinit(allocator);
9494 }
95959696- // turso returns: execute, close, execute, close, ...
9797- // we want every other result (the executes, skip the closes)
9898- var query_idx: usize = 0;
9999- var i: usize = 0;
100100- while (i < turso_results.array.items.len and query_idx < count) : (i += 2) {
9696+ // turso returns: [execute, execute, ..., close]
9797+ // process first N items (the executes), skip the final close
9898+ for (0..count) |i| {
9999+ if (i >= turso_results.array.items.len) break;
101100 const item = turso_results.array.items[i];
102101 const json_rows = getRowsFromResult(item);
103102···110109 }
111110 }
112111 try all_results.append(allocator, try rows.toOwnedSlice(allocator));
113113- query_idx += 1;
114112 }
115113116114 return .{
+6-6
backend/src/db/turso.zig
···275275276276 try jw.endObject(); // stmt
277277 try jw.endObject(); // execute request
278278-279279- // close after each statement
280280- try jw.beginObject();
281281- try jw.objectField("type");
282282- try jw.write("close");
283283- try jw.endObject();
284278 }
279279+280280+ // single close at the end
281281+ try jw.beginObject();
282282+ try jw.objectField("type");
283283+ try jw.write("close");
284284+ try jw.endObject();
285285286286 try jw.endArray(); // requests
287287 try jw.endObject(); // root