Uploaded image for project: '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.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Trivial
    • Resolution: Fixed
    • 10.4.1.3
    • 10.13.1.0
    • JDBC
    • Normal
    • 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.

      Attachments

        1. repro.java
          5 kB
          Myrna van Lunteren
        2. Derby-3181.diff
          0.6 kB
          Danoja Dias
        3. testChange.diff
          1 kB
          Bryan Pendleton
        4. Derby3181.diff
          3 kB
          Danoja Dias
        5. deleteQuery.diff
          1 kB
          Danoja Dias

        Issue Links

          Activity

            People

              Dnj Danoja Dias
              myrna Myrna van Lunteren
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: