@@ -87,10 +87,7 @@ public class ITBigQueryJDBCTest extends ITBase {
8787 "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID="
8888 + PROJECT_ID
8989 + ";OAUTHTYPE=3" ;
90- static final String session_enabled_connection_uri =
91- "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID="
92- + PROJECT_ID
93- + ";OAUTHTYPE=3;EnableSession=1" ;
90+ static final String session_enabled_connection_uri = connection_uri + ";EnableSession=1" ;
9491 private static final String BASE_QUERY =
9592 "SELECT * FROM bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2017 order by"
9693 + " trip_distance asc LIMIT %s" ;
@@ -3717,6 +3714,63 @@ public void testExecuteScriptWithExpession() throws SQLException {
37173714 assertEquals (-1 , bigQueryStatement .getUpdateCount ());
37183715 }
37193716
3717+ @ Test
3718+ public void testExecuteSingleSelectMoreResultsBehavior () throws SQLException {
3719+ String sql = "SELECT 1;" ;
3720+ assertTrue (bigQueryStatement .execute (sql ));
3721+ ResultSet rs = bigQueryStatement .getResultSet ();
3722+ assertNotNull (rs );
3723+ assertTrue (rs .next ());
3724+ assertEquals (1 , rs .getInt (1 ));
3725+ assertFalse (rs .next ());
3726+
3727+ // Validate no more results reset update count to -1
3728+ assertFalse (bigQueryStatement .getMoreResults ());
3729+ assertEquals (-1 , bigQueryStatement .getUpdateCount ());
3730+ }
3731+
3732+ @ Test
3733+ public void testExecuteSingleInsertMoreResultsBehavior () throws SQLException {
3734+ String tableName = "test_insert_more_results_" + System .currentTimeMillis ();
3735+ String createSql =
3736+ String .format ("CREATE OR REPLACE TABLE %s.%s (id INT64);" , DATASET , tableName );
3737+ String insertSql = String .format ("INSERT INTO %s.%s (id) VALUES (1);" , DATASET , tableName );
3738+ String dropSql = String .format ("DROP TABLE IF EXISTS %s.%s;" , DATASET , tableName );
3739+
3740+ try {
3741+ bigQueryStatement .execute (createSql );
3742+
3743+ assertFalse (bigQueryStatement .execute (insertSql ));
3744+ assertNull (bigQueryStatement .getResultSet ());
3745+ assertTrue (bigQueryStatement .getUpdateCount () > 0 );
3746+
3747+ // Validate no more results reset update count to -1
3748+ assertFalse (bigQueryStatement .getMoreResults ());
3749+ assertEquals (-1 , bigQueryStatement .getUpdateCount ());
3750+ } finally {
3751+ bigQueryStatement .execute (dropSql );
3752+ }
3753+ }
3754+
3755+ @ Test
3756+ public void testExecuteSingleTclMoreResultsBehavior () throws SQLException {
3757+ Connection sessionConnection = DriverManager .getConnection (session_enabled_connection_uri );
3758+ Statement sessionStatement = sessionConnection .createStatement ();
3759+
3760+ try {
3761+ assertFalse (sessionStatement .execute ("START TRANSACTION;" ));
3762+ assertNull (sessionStatement .getResultSet ());
3763+ assertEquals (0 , sessionStatement .getUpdateCount ());
3764+
3765+ // Validate no more results reset update count to -1
3766+ assertFalse (sessionStatement .getMoreResults ());
3767+ assertEquals (-1 , sessionStatement .getUpdateCount ());
3768+ } finally {
3769+ sessionStatement .close ();
3770+ sessionConnection .close ();
3771+ }
3772+ }
3773+
37203774 @ Test
37213775 public void testInformationSchemaTables () throws SQLException {
37223776 String query = String .format ("SELECT * FROM %s.INFORMATION_SCHEMA.TABLES" , DATASET );
0 commit comments