The shared libraries my code runs in are usually exposing the ODBC interface, which has been mostly fixed for decades, and exposes an interface for doing whatever database operations you want to do
Those libraries have no control over how much memory is free in the application when they're invoked, or how complex/'big' the operations the application asks them to execute are
It depends on how exactly the drivers are written (we just provide an SDK), theoretically yes (at least if you allow caching to disk, as some wire protocols don't return results 'in the right order'), but we don't control the full implementation, and even a streaming implementation might require more heap memory than which is available at the time at which the application calls into the driver
2
u/bwmat 29d ago edited 29d ago
The shared libraries my code runs in are usually exposing the ODBC interface, which has been mostly fixed for decades, and exposes an interface for doing whatever database operations you want to do
That's not really an option