The current query execution is basically:
foreach (var row in query.Execute) {
row.AssignTo(out var result); // copy from SQLite memory to managed memory
// do anything with result, including putting it on the heap
}
This can be optimized for callers that only use the result on the stack. Maybe:
query.Execute.ForEach(result => StackWork(result)) // no copy, Span fields allowed
Where result is constrained to ref struct?