Exemplo n.º 1
0
        /// <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
        }
Exemplo n.º 2
0
        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);
        }