File tree Expand file tree Collapse file tree 2 files changed +30
-0
lines changed
main/java/com/google/cloud/spanner
test/java/com/google/cloud/spanner Expand file tree Collapse file tree 2 files changed +30
-0
lines changed Original file line number Diff line number Diff line change 3232import com .google .cloud .spanner .SessionClient .SessionOption ;
3333import com .google .cloud .spanner .TransactionRunnerImpl .TransactionContextImpl ;
3434import com .google .cloud .spanner .spi .v1 .SpannerRpc ;
35+ import com .google .common .base .Strings ;
3536import com .google .common .base .Ticker ;
3637import com .google .common .collect .Lists ;
3738import com .google .common .util .concurrent .MoreExecutors ;
@@ -511,6 +512,11 @@ ApiFuture<Transaction> beginTransactionAsync(
511512 if (sessionReference .getIsMultiplexed () && mutation != null ) {
512513 requestBuilder .setMutationKey (mutation );
513514 }
515+ if (sessionReference .getIsMultiplexed () && !Strings .isNullOrEmpty (transactionOptions .tag ())) {
516+ requestBuilder .setRequestOptions (RequestOptions .newBuilder ()
517+ .setTransactionTag (transactionOptions .tag ())
518+ .build ());
519+ }
514520 final BeginTransactionRequest request = requestBuilder .build ();
515521 final ApiFuture <Transaction > requestFuture ;
516522 XGoogSpannerRequestId reqId = this .getRequestIdCreator ().nextRequestId (this .getChannel (), 1 );
Original file line number Diff line number Diff line change @@ -1898,6 +1898,30 @@ public void testReadWriteExecuteQueryWithTag() {
18981898 .isEqualTo ("app=spanner,env=test,action=txn" );
18991899 }
19001900
1901+ @ Test
1902+ public void testBlindWriteWithTransactionTag () {
1903+ DatabaseClient client =
1904+ spanner .getDatabaseClient (DatabaseId .of (TEST_PROJECT , TEST_INSTANCE , TEST_DATABASE ));
1905+ String transactionTag = "app=spanner,env=test,action=txn" ;
1906+ TransactionRunner runner =
1907+ client .readWriteTransaction (Options .tag (transactionTag ));
1908+ runner .run (
1909+ transaction -> {
1910+ transaction .buffer (Mutation .newInsertBuilder ("abc" )
1911+ .set ("id" )
1912+ .to (1L )
1913+ .build ());
1914+ return null ;
1915+ });
1916+
1917+ List <BeginTransactionRequest > beginTransactionRequests = mockSpanner .getRequestsOfType (BeginTransactionRequest .class );
1918+ assertThat (beginTransactionRequests ).hasSize (1 );
1919+ assertThat (beginTransactionRequests .get (0 ).getRequestOptions ().getTransactionTag ()).isEqualTo (transactionTag );
1920+ List <CommitRequest > commitRequests = mockSpanner .getRequestsOfType (CommitRequest .class );
1921+ assertThat (commitRequests ).hasSize (1 );
1922+ assertThat (commitRequests .get (0 ).getRequestOptions ().getTransactionTag ()).isEqualTo (transactionTag );
1923+ }
1924+
19011925 @ Test
19021926 public void testReadWriteExecuteReadWithTag () {
19031927 DatabaseClient client =
You can’t perform that action at this time.
0 commit comments