hbase shell: phantom columns show up from select command --------------------------------------------------------
Key: HADOOP-2296 URL: https://issues.apache.org/jira/browse/HADOOP-2296 Project: Hadoop Issue Type: Bug Components: contrib/hbase Affects Versions: 0.15.0 Reporter: Michael Bieniosek {code} Hbase> select * from hbase_test where row='2'; +--------------------------------------+--------------------------------------+ | Column | Cell | +--------------------------------------+--------------------------------------+ | test:a | a | +--------------------------------------+--------------------------------------+ | test:c | c | +--------------------------------------+--------------------------------------+ 2 row(s) in set (0.00 sec) Hbase> select * from hbase_test where row='1'; +--------------------------------------+--------------------------------------+ | Column | Cell | +--------------------------------------+--------------------------------------+ | test:a | a | +--------------------------------------+--------------------------------------+ | test:b | b | +--------------------------------------+--------------------------------------+ 2 row(s) in set (0.00 sec) Hbase> select * from hbase_test; +-------------------------+-------------------------+-------------------------+ | Row | Column | Cell | +-------------------------+-------------------------+-------------------------+ | 1 | test:a | a | +-------------------------+-------------------------+-------------------------+ | 1 | test:b | b | +-------------------------+-------------------------+-------------------------+ | 2 | test:a | a | +-------------------------+-------------------------+-------------------------+ | 2 | test:b | b | +-------------------------+-------------------------+-------------------------+ | 2 | test:c | c | +-------------------------+-------------------------+-------------------------+ 5 row(s) in set (0.14 sec) {code} Note the phantom value for test:b in row 2. I looked at the code, and it looks like SelectCommand.scanPrint incorrectly fails to call results.clear() every time it calls scan.next(). However, I also think that the HScannerInterface.next(HStoreKey key, SortedMap<Text,byte[]> results) is confusing, since it requires the user to call results.clear() and key.clear() before calling next each time. Since the Iterable interface that provides the zero-arg next has been added, I suggest that it might be worthwhile to deprecate the two-arg next. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.