/// <summary>Snippet for StreamingRead</summary> public async Task StreamingRead() { // Snippet: StreamingRead(ReadRequest,CallSettings) // Create client SpannerClient spannerClient = SpannerClient.Create(); // Initialize request argument ReadRequest request = new ReadRequest { SessionAsSessionName = new SessionName("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"), Table = "", Columns = { }, KeySet = new KeySet(), }; // Make the request, returning a streaming response SpannerClient.StreamingReadStream streamingResponse = spannerClient.StreamingRead(request); // Read streaming responses from server until complete IAsyncEnumerator <PartialResultSet> responseStream = streamingResponse.ResponseStream; while (await responseStream.MoveNext()) { PartialResultSet response = responseStream.Current; // Do something with streamed response } // The response stream has completed // End snippet }
public void ExecuteStreamingSql() { Session session; session = client.CreateSession( new CreateSessionRequest { Database = DatabaseUrl }); Assert.IsNotNull(session); AssertAffinityCount(1); var streamingCall = client.ExecuteStreamingSql( new ExecuteSqlRequest { Session = session.Name, Sql = string.Format("select id, data from {0}", TableName) }); AssertAffinityCount(1, expectedActiveStreamCount: 1); CancellationTokenSource tokenSource = new CancellationTokenSource(); CancellationToken token = tokenSource.Token; var responseStream = streamingCall.ResponseStream; PartialResultSet firstResultSet = null; while (responseStream.MoveNext(token).Result) { if (firstResultSet == null) { firstResultSet = responseStream.Current; } } Assert.AreEqual(ColumnId, firstResultSet?.Values[0].StringValue); AssertAffinityCount(1); client.DeleteSession(new DeleteSessionRequest { Name = session.Name }); AssertAffinityCount(0); }