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); }
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()); }
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)); }