Example #1
0
        /// <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));
        }