@@ -399,7 +399,7 @@ public void testQueryStats() {
399399 }
400400
401401 @ Test
402- public void testQueryWarngins () {
402+ public void testQueryWarnings () {
403403 try (QueryClient client = QueryClient .newClient (ydbTransport ).build ()) {
404404 try (QuerySession session = client .createSession (Duration .ofSeconds (5 )).join ().getValue ()) {
405405 CompletableFuture <Result <QueryInfo >> createTable = session
@@ -433,4 +433,60 @@ public void testQueryWarngins() {
433433 }
434434 }
435435 }
436+
437+ @ Test
438+ public void testMultiStatement () {
439+ try (QueryClient client = QueryClient .newClient (ydbTransport ).build ()) {
440+ try (QuerySession session = client .createSession (Duration .ofSeconds (5 )).join ().getValue ()) {
441+ String query = ""
442+ + "SELECT * FROM `" + TEST_TABLE + "` WHERE id = $s1;"
443+ + "INSERT INTO `" + TEST_TABLE + "` (id, name) VALUES ($id1, $name1);"
444+ + "SELECT * FROM `" + TEST_TABLE + "` WHERE id = $s2;"
445+ + "INSERT INTO `" + TEST_TABLE + "` (id, name) VALUES ($id2, $name2);"
446+ + "SELECT * FROM `" + TEST_TABLE + "` ORDER BY id" ;
447+
448+ Params params = Params .of (
449+ "$s1" , PrimitiveValue .newInt32 (100 ),
450+ "$s2" , PrimitiveValue .newInt32 (100 ),
451+ "$id1" , PrimitiveValue .newInt32 (100 ),
452+ "$name1" , PrimitiveValue .newText ("TEST1" ),
453+ "$id2" , PrimitiveValue .newInt32 (200 ),
454+ "$name2" , PrimitiveValue .newText ("TEST2" )
455+ );
456+
457+ Result <QueryReader > result = QueryReader .readFrom (
458+ session .createQuery (query , TxMode .SERIALIZABLE_RW , params )
459+ ).join ();
460+
461+ Assert .assertTrue (result .isSuccess ());
462+ Assert .assertTrue (result .getStatus ().getIssues ().length == 0 );
463+
464+ QueryReader reader = result .getValue ();
465+ Assert .assertEquals (3 , reader .getResultSetCount ());
466+
467+ ResultSetReader rs1 = reader .getResultSet (0 );
468+ Assert .assertFalse (rs1 .next ());
469+
470+ ResultSetReader rs2 = reader .getResultSet (1 );
471+ Assert .assertTrue (rs2 .next ());
472+ Assert .assertEquals (100 , rs2 .getColumn ("id" ).getInt32 ());
473+ Assert .assertEquals ("TEST1" , rs2 .getColumn ("name" ).getText ());
474+ Assert .assertFalse (rs2 .next ());
475+
476+ ResultSetReader rs3 = reader .getResultSet (2 );
477+ Assert .assertTrue (rs3 .next ());
478+ Assert .assertEquals (100 , rs3 .getColumn ("id" ).getInt32 ());
479+ Assert .assertEquals ("TEST1" , rs3 .getColumn ("name" ).getText ());
480+ Assert .assertTrue (rs3 .next ());
481+ Assert .assertEquals (200 , rs3 .getColumn ("id" ).getInt32 ());
482+ Assert .assertEquals ("TEST2" , rs3 .getColumn ("name" ).getText ());
483+ Assert .assertFalse (rs3 .next ());
484+ } finally {
485+ try (QuerySession session = client .createSession (SESSION_TIMEOUT ).join ().getValue ()) {
486+ session .createQuery ("DELETE FROM " + TEST_TABLE , TxMode .SERIALIZABLE_RW ).execute ()
487+ .join ().getStatus ().expectSuccess ();
488+ }
489+ }
490+ }
491+ }
436492}
0 commit comments