I think the new streaming behavior in Sql.mysql.big_query is nice and
as it should be, but it's causing too much headaches in existing
applications - the old de-facto behavior is too ingrained.
So a proposal is to instead do like this:
query: Like today - slow and memory consuming.
big_query: A variant of query() that still is nonstreaming. I.e.
it only avoids the very bulky response format of
query().
streaming_query: Like big_query but guaranteed to stream if it
exists. It's database dependent whether other queries
can be issued while a streaming_query response object
exists. It's of course also database dependent if
there are locks on the tables in the server while the
response object exists.
While at it, we could also consider generalizing the big_typed_query
interface that the oracle module provides:
big_typed_query: Like big_query but doesn't convert everything to
strings. Integers and floats are kept that way,
Date/timestamps are Calendar objects, there are
objects for representing the NULL value for each type.
streaming_typed_query: Streaming variant of big_typed_query.