Changes in 21.2.29

Bug and Performance Fixes

  1. Fixed a problem where a row with an homogenous JSON array of type STRING written with 20.2 or earlier would fail to deserialize in 20.3 or later. The issue shows up a row that is not found in get() or queries that need to deserialize the row value. The data remains intact but is not accessible.

    [KVSTORE-1347]

  2. Fixed a problem where a query run on a table with data that was created prior to release 19.5 and never modified might fail with an error that indicates "modification time not available." The same error might occur if the Row.getLastModificationTime() call is made on such a row.

    [KVSTORE-1234]

API Changes

  1. Row.getExpirationTime() and Row.getLastModificationTime() no longer throw an exception if the underlying Row metadata is not available. Instead they will return 0 indicating no expiration and no available modification time, respectively. Expiration time is 0 for rows that either do not have a TTL or were written prior to the introduction of the TTL feature. Modification time of 0 occurs only for rows that were written prior to the introduction of modification time, which was release 19.5.

    [KVSTORE-1234]

  2. Marked IndexKeySizeLimitException as hidden, it is for internal use only.

    [NOSQL-408]