- 
                Notifications
    You must be signed in to change notification settings 
- Fork 316
Closed
Description
Based on the binary read benchmark in #593 (comment) I tried the code below expecting the behaviour to be fast and found that it simply blocks indefinitely.
            using var conn = new SqlConnection(ConnectionString);
            using var cmd = new SqlCommand("SELECT foo FROM data", conn);
            await conn.OpenAsync();
            using var reader = await cmd.ExecuteReaderAsync(
                System.Data.CommandBehavior.SequentialAccess
            );
            await reader.ReadAsync();
            using var stream =  reader.GetStream(0);
            using var memory = new MemoryStream(16 * 1024);
            await stream.CopyToAsync(memory);
            return (int)memory.Length;This should work but freezes in a task wait after a single read cycle, the second read never completed. If you change it to standard mode it'll work but it does so by fetching the entire field and giving you a reader over the byte[]. So no workaround, this needs fixing if the team agree that it's a bug.
Edit: for clarity the problem is when multiple packets are needed. The current tests read from a single packet and thus do not do a network read.
Metadata
Metadata
Assignees
Labels
No labels