title: PostgreSQL error updating ResultSet "No primary key found for table" on table w/key
body: <p>I'm trying to do an update on a ResultSet and I'm getting an exception, <code>No primary key found for table nvp,</code> on a table that has a primary key.</p>
  
  <p>It's PostgreSQL 9.6.1.0, and jdbc driver version is postgresql-9.4.1212.jar downloaded from their website (JDBC42 Postgresql Driver, Version 9.4.1212 from <a href="https://jdbc.postgresql.org/download.html" rel="nofollow noreferrer">here</a>).</p>
  
  <pre><code>@Test
  public void testUpdateableResultSet() throws Exception {
      String url = "jdbc:postgresql://localhost:5432/dot";
      Properties props = new Properties();
      props.setProperty("user", "dot_test");
      props.setProperty("password", "test_dot");
      props.setProperty("currentSchema", "dot_test");
  
      try(Connection conn = DriverManager.getConnection(url, props)) {
          conn.setAutoCommit(false);
          try(Statement s = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE)) {
              s.execute("drop table if exists nvp");
              s.execute("create table nvp (id int primary key, value text);");
              s.execute("insert into nvp (id, value) values (1, 'one_'), (2, 'two_')");
          }
  
          try(PreparedStatement ps = conn.prepareStatement("select value from nvp", 
                  ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
                  ResultSet rs = ps.executeQuery()) {
              while(rs.next()) {
                  String s = rs.getString(1);
                  if(s.endsWith("_")) {
                      s = s.replace("_", "");
                  }
                  else {
                      s = s + "_";
                  }
                  rs.updateString(1, s);              // line 28
                  System.out.println("row updated");
              }
          }
      }
  }
  </code></pre>
  
  <p>With the following result.</p>
  
  <pre><code>Testcase: testUpdateableResultSet(com.tekbot.lib.sql.SimpleTest):   Caused an ERROR
  No primary key found for table nvp.
  org.postgresql.util.PSQLException: No primary key found for table nvp.
      at org.postgresql.jdbc.PgResultSet.isUpdateable(PgResultSet.java:1586)
      at org.postgresql.jdbc.PgResultSet.checkUpdateable(PgResultSet.java:2722)
      at org.postgresql.jdbc.PgResultSet.updateValue(PgResultSet.java:3056)
      at org.postgresql.jdbc.PgResultSet.updateString(PgResultSet.java:1393)
      at com.tekbot.lib.sql.SimpleTest.testUpdateableResultSet(SimpleTest.java:28)
  </code></pre>
  
  <p>Is this a bug? Am I missing a step?</p>