/// <summary> /// Constructor with complete control that does not perform any validation. /// </summary> internal ResultStream( SpannerClient client, ReadOrQueryRequest request, Session session, CallSettings callSettings, int maxBufferSize, RetrySettings retrySettings) { _buffer = new LinkedList <PartialResultSet>(); _client = GaxPreconditions.CheckNotNull(client, nameof(client)); _request = GaxPreconditions.CheckNotNull(request, nameof(request)); _session = GaxPreconditions.CheckNotNull(session, nameof(session)); _callSettings = callSettings; _maxBufferSize = GaxPreconditions.CheckArgumentRange(maxBufferSize, nameof(maxBufferSize), 1, 10_000); _retrySettings = GaxPreconditions.CheckNotNull(retrySettings, nameof(retrySettings)); }
/// <summary> /// Creates a <see cref="ReliableStreamReader"/> for the given request /// </summary> /// <param name="request">The read request. Must not be null. The request will be modified with session and transaction details /// from this object. If this object's <see cref="TransactionId"/> is null, the request's transaction is not modified.</param> /// <param name="callSettings">If not null, applies overrides to this RPC call.</param> /// <returns>A <see cref="ReliableStreamReader"/> for the streaming read request.</returns> internal ReliableStreamReader ExecuteReadOrQueryStreamReader(ReadOrQueryRequest request, CallSettings callSettings) { CheckNotDisposed(); GaxPreconditions.CheckNotNull(request, nameof(request)); if (TransactionId != null) { request.Transaction = new TransactionSelector { Id = TransactionId }; } request.SessionAsSessionName = SessionName; SpannerClientImpl.ApplyResourcePrefixHeaderFromSession(ref callSettings, request.Session); ResultStream stream = new ResultStream(Client, request, _session, callSettings); return(new ReliableStreamReader(stream, Client.Settings.Logger)); }
/// <summary> /// Constructor for normal usage, with default buffer size, backoff settings and jitter. /// </summary> internal ResultStream(SpannerClient client, ReadOrQueryRequest request, Session session, CallSettings callSettings) : this(client, request, session, callSettings, DefaultMaxBufferSize, s_defaultRetrySettings) { }
/// <summary> /// Creates a <see cref="ReliableStreamReader"/> for the given request. /// </summary> /// <param name="request">The query request. Must not be null. The request will be modified with session and transaction details /// from this object. If this object's <see cref="TransactionId"/> is null, the request's transaction is not modified.</param> /// <param name="callSettings">If not null, applies overrides to this RPC call.</param> /// <returns>A <see cref="ReliableStreamReader"/> for the streaming SQL request.</returns> public ReliableStreamReader ExecuteSqlStreamReader(ExecuteSqlRequest request, CallSettings callSettings) => ExecuteReadOrQueryStreamReader(ReadOrQueryRequest.FromRequest(request), callSettings);