Derby
  1. Derby
  2. DERBY-3181

isNullable on ResultSetMetaData from DatabaseMetaData.getBestRowIdentifier values are opposite when there is no rows in ResultSet vs. when there is a row.

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Trivial Trivial
    • Resolution: Unresolved
    • Affects Version/s: 10.4.1.3
    • Fix Version/s: None
    • Component/s: JDBC
    • Urgency:
      Normal
    • Issue & fix info:
      Newcomer, Repro attached

      Description

      With code like the following:

      DatabaseMetaData dmd = conn.getMetaData();
      ResultSet rs = dmd.getBestRowIdentifier(null,"APP","a",3,true);
      ResultSetMetaData rsmd = rs.getMetaData();
      int actualCols = rsmd.getColumnCount();
      for (int i = 0; i < actualCols; i++)

      { System.out.print("getColumnName: " + rsmd.getColumnName(i+1) + ", isNullable: "); System.out.println(rsmd.isNullable(i+1)); }

      The printed values for isNullable returned are opposite of what they are when the getBestRowIdentifier call looks like this:
      ResultSet rs = dmd.getBestRowIdentifier(null,"APP","a",1,true);

      In the latter case, the values are:
      getColumnName: SCOPE, isNullable: 0
      getColumnName: COLUMN_NAME, isNullable: 1
      getColumnName: DATA_TYPE, isNullable: 0
      getColumnName: TYPE_NAME, isNullable: 1
      getColumnName: COLUMN_SIZE, isNullable: 0
      getColumnName: BUFFER_LENGTH, isNullable: 0
      getColumnName: DECIMAL_DIGITS, isNullable: 0
      getColumnName: PSEUDO_COLUMN, isNullable: 0

      In the first case, the values are:
      getColumnName: SCOPE, isNullable: 1
      getColumnName: COLUMN_NAME, isNullable: 0
      getColumnName: DATA_TYPE, isNullable: 1
      getColumnName: TYPE_NAME, isNullable: 1
      getColumnName: COLUMN_SIZE, isNullable: 1
      getColumnName: BUFFER_LENGTH, isNullable: 1
      getColumnName: DECIMAL_DIGITS, isNullable: 1
      getColumnName: PSEUDO_COLUMN, isNullable: 1

      The isNullable value should be stable.
      It's probably worthwhile verifying what the value should be in the first place.

      1. repro.java
        5 kB
        Myrna van Lunteren

        Activity

        Hide
        Kathey Marsden added a comment -

        Triaged for 10.5.2. Set urgency to normal

        Show
        Kathey Marsden added a comment - Triaged for 10.5.2. Set urgency to normal

          People

          • Assignee:
            Unassigned
            Reporter:
            Myrna van Lunteren
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:

              Development