/// <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) { CheckNotDisposed(); GaxPreconditions.CheckNotNull(request, nameof(request)); if (TransactionId != null) { request.Transaction = new TransactionSelector { Id = TransactionId }; } request.SessionAsSessionName = SessionName; SqlResultStream stream = new SqlResultStream(Client, request, _session, callSettings); return(new ReliableStreamReader(stream, Client.Settings.Logger)); }
/// <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="timeoutSeconds">The timeout for this RPC, in seconds.</param> /// <returns>A <see cref="ReliableStreamReader"/> for the streaming SQL request.</returns> public ReliableStreamReader ExecuteSqlStreamReader(ExecuteSqlRequest request, int timeoutSeconds) { CheckNotDisposed(); GaxPreconditions.CheckNotNull(request, nameof(request)); if (TransactionId != null) { request.Transaction = new TransactionSelector { Id = TransactionId }; } request.SessionAsSessionName = SessionName; // Not using CreateSettings as we don't have a cancellation token. var settings = Client.Settings.ExecuteStreamingSqlSettings.WithExpiration( Client.Settings.ConvertTimeoutToExpiration(timeoutSeconds)); SqlResultStream stream = new SqlResultStream(Client, request, _session, settings); return(new ReliableStreamReader(stream, Client.Settings.Logger)); }