Note that it does not try to limit Execute size as I don't think I understand protocol fully. The only thing it does is that it does not read everything before returning to the caller. Instead it reads response rows in fetchSize batches. If another statement tries to use the same connection, full result is read immediatelly (this part is not tested yet).