Bug 1375902 Incorrect range boundaries for queries using ESPs Reading unsalted, multi-region tables in parallel was very imbalanced, except for the very first time a table was accessed in a session.
The problem was that NATable caching involves unparsing the region boundaries, and we created these region boundary values in a way that could not be unparsed. So, when we used an NATable object from the NATable cache, the region boundaries had dummy values instead of the real ones.
The fix adds code to create valid SQL literals from binary values, to be used in the unparse method. Moving to HBase 0.98 also required an additional fix, to handle partial values in HBase region start keys. A region start key in an HBase 0.98 table can be a prefix of an actual row key.
There is still a problem with keys that use the interval type, but it is probably a day 1 issue. Since it is late in the 0.9 release, I'm deferring that to the next release.
Ensure UID returned for MD tables is non-null When an NATable is created for a metadata table, the UID is not known. Under certain conditions, this creates a problem whereby the AUTHS table can not be read, and access to a table is incorrectly denied. In this fix, the NATable::objectUid() function is changed to do a lookup of the UID for a metadata table if it is 0, and to store the result in NATable for future calls.