@Override
  public ResultSet executeQuery(String sql)
      throws SQLException {
    validateState();
    try {
      _resultSetGroup = _session.execute(DriverUtils.enableQueryOptions(sql, _connection.getQueryOptions()));
      if (_resultSetGroup.getResultSetCount() == 0) {
        _resultSet = PinotResultSet.empty();
        return _resultSet;
      }
      _resultSet = new PinotResultSet(_resultSetGroup.getResultSet(0));
      return _resultSet;
    } catch (PinotClientException e) {
      throw new SQLException(String.format("Failed to execute query : %s", sql), e);
    }
  }
@Test
  public void testSetEnableNullHandling2()
      throws Exception {
    Properties props = new Properties();
    props.put(QueryOptionKey.ENABLE_NULL_HANDLING, "true");
    PinotConnection pinotConnection =
        new PinotConnection(props, "dummy", _dummyPinotClientTransport, "dummy", _dummyPinotControllerTransport);
    PreparedStatement preparedStatement = pinotConnection.prepareStatement("");
    preparedStatement.executeQuery(BASIC_TEST_QUERY);
    String expectedSql =
        DriverUtils.createSetQueryOptionString(QueryOptionKey.ENABLE_NULL_HANDLING, true) + BASIC_TEST_QUERY;
    Assert.assertEquals(_dummyPinotClientTransport.getLastQuery().substring(0, expectedSql.length()), expectedSql);
  }