[RFC] - mysql-native rewrite
Gary Willoughby
dev at nomad.so
Sun Sep 29 10:38:49 PDT 2013
On Sunday, 29 September 2013 at 15:42:10 UTC, simendsjo wrote:
> I don't think it's that simple in this case. When I implement
> lazy fetching, both methods have it's advantages and
> disadvantages.
> MySQL doesn't allow multiplexing on a connection. This means a
> command must complete before issuing another. If reading rows
> lazily and then issuing a new command, the choice is to either
> disallow the new command, or invalidate the previous. The
> simple way would be to just start a new command and invalidate
> the previous, but is this the best way? If we choose to
> disallow new commands, that means the user have to explicitly
> close a lazy command. If using classes, we can safely have
> several instances for a command (is this neccessary?), but then
> the destructor wont't be a safe bet, and the user have to call
> close.
> If implemented as a struct, we have to disallow copying.
>
> So... I really don't know what the best design would be.
I reckon go with Command being a class and invalidate previous
lazy loading on new commands being issued, you are after all
issuing a *new* command. If multiplexing is needed a new
connection can be made.
More information about the Digitalmars-d
mailing list