public void Equals_ReadRequest()
        {
            var request = new ReadRequest
            {
                Table       = "Foo",
                Columns     = { "Col1", "Col2" },
                Index       = "Bar",
                Limit       = 10,
                Session     = "sessionName",
                Transaction = new TransactionSelector
                {
                    Id = ByteString.CopyFrom("some_id", Encoding.UTF8)
                }
            };
            var request2   = request.Clone();
            var request3   = new ReadRequest();
            var partition1 = new CommandPartition(ReadOrQueryRequest.FromRequest(request));
            var partition2 = new CommandPartition(ReadOrQueryRequest.FromRequest(request2));
            var partition3 = new CommandPartition(ReadOrQueryRequest.FromRequest(request3));
            var partition4 = new CommandPartition(ReadOrQueryRequest.FromRequest(new ExecuteSqlRequest()));

            Assert.Equal(partition1, partition2);
            Assert.NotEqual(partition1, partition3);
            Assert.NotEqual(partition1, partition4);
            Assert.NotEqual(partition3, partition4);
            Assert.Equal(partition1, partition1.Clone());
        }
 /// <summary>
 /// Creates a new <see cref="CommandPartition"/> based on the text returned by a previous
 /// call to <see cref="ToBase64String"/>.
 /// </summary>
 /// <param name="base64String">The base64 representation of the command partition. Must not be null.</param>
 /// <returns>The <see cref="CommandPartition"/> representation of the partition.</returns>
 public static CommandPartition FromBase64String(string base64String)
 {
     GaxPreconditions.CheckNotNull(base64String, nameof(base64String));
     try
     {
         var request = ExecuteSqlRequest.Parser.ParseFrom(ByteString.FromBase64(base64String));
         return(new CommandPartition(ReadOrQueryRequest.FromQueryRequest(request)));
     }
     catch (Exception)
     {
         // ignore and try to parse as a ReadRequest.
         return(new CommandPartition(ReadOrQueryRequest.FromReadRequest(ReadRequest.Parser.ParseFrom(ByteString.FromBase64(base64String)))));
     }
 }
        public void Base64RoundTrip_ExecuteSqlRequest()
        {
            var request = new ExecuteSqlRequest
            {
                Sql         = "Test Sql",
                Session     = "sessionName",
                Transaction = new TransactionSelector
                {
                    Id = ByteString.CopyFrom("some_id", Encoding.UTF8)
                }
            };

            var partition  = new CommandPartition(ReadOrQueryRequest.FromRequest(request));
            var partition2 = CommandPartition.FromBase64String(partition.ToBase64String());

            Assert.Equal(request, partition2.Request.ExecuteSqlRequest);
        }
Beispiel #4
0
        public Task <ReliableStreamReader> ExecuteReadOrQueryAsync(ReadOrQueryRequest request, CancellationToken cancellationToken, int timeoutSeconds /* ignored */)
        {
            return(ExecuteHelper.WithErrorTranslationAndProfiling(Impl, "EphemeralTransaction.ExecuteReadOrQuery", _connection.Logger));

            async Task <ReliableStreamReader> Impl()
            {
                PooledSession session = await _connection.AcquireSessionAsync(_transactionOptions, cancellationToken).ConfigureAwait(false);

                var callSettings = _connection.CreateCallSettings(
                    request.GetCallSettings,
                    cancellationToken);
                var reader = request.ExecuteReadOrQueryStreamReader(session, callSettings);

                reader.StreamClosed += delegate { session.ReleaseToPool(forceDelete: false); };
                return(reader);
            }
        }
        public void Base64RoundTrip_ReadRequest()
        {
            var request = new ReadRequest
            {
                Table       = "Foo",
                Columns     = { "Col1", "Col2" },
                Index       = "Bar",
                Limit       = 10,
                Session     = "sessionName",
                Transaction = new TransactionSelector
                {
                    Id = ByteString.CopyFrom("some_id", Encoding.UTF8)
                }
            };

            var partition  = new CommandPartition(ReadOrQueryRequest.FromRequest(request));
            var partition2 = CommandPartition.FromBase64String(partition.ToBase64String());

            Assert.Equal(request, partition2.Request.ReadRequest);
        }
        public void Equals_ExecuteSqlRequest()
        {
            var request = new ExecuteSqlRequest
            {
                Sql         = "SELECT * FROM Foo",
                Session     = "sessionName",
                Transaction = new TransactionSelector
                {
                    Id = ByteString.CopyFrom("some_id", Encoding.UTF8)
                }
            };
            var request2   = request.Clone();
            var request3   = new ExecuteSqlRequest();
            var partition1 = new CommandPartition(ReadOrQueryRequest.FromRequest(request));
            var partition2 = new CommandPartition(ReadOrQueryRequest.FromRequest(request2));
            var partition3 = new CommandPartition(ReadOrQueryRequest.FromRequest(request3));
            var partition4 = new CommandPartition(ReadOrQueryRequest.FromRequest(new ReadRequest()));

            Assert.Equal(partition1, partition2);
            Assert.NotEqual(partition1, partition3);
            Assert.NotEqual(partition1, partition4);
            Assert.NotEqual(partition3, partition4);
            Assert.Equal(partition1, partition1.Clone());
        }
Beispiel #7
0
        public async Task <ReliableStreamReader> ExecuteReadOrQueryAsync(ReadOrQueryRequest request, CancellationToken cancellationToken, int timeoutSeconds)
        {
            ISpannerTransaction transaction = await SpannerTransactionTask.ConfigureAwait(false);

            return(await transaction.ExecuteReadOrQueryAsync(request, cancellationToken, timeoutSeconds).ConfigureAwait(false));
        }
 internal CommandPartition(ReadOrQueryRequest request)
 {
     Request = GaxPreconditions.CheckNotNull(request, nameof(request));
 }