Binary values are formatted wrong in shell
------------------------------------------
Key: HBASE-2035
URL: https://issues.apache.org/jira/browse/HBASE-2035
Project: Hadoop HBase
Issue Type: Bug
Affects Versions: 0.20.2
Reporter: Dave Latham
Priority: Minor
Fix For: 0.20.3, 0.21.0
Binary values in the shell don't seem to be formatted correctly. For example:
{code}
hbase(main):007:0> put 't1', 'r1', 'f1:q1', "\x91", 1000
0 row(s) in 0.0160 seconds
hbase(main):008:0> scan 't1'
ROW COLUMN+CELL
r1 column=f1:q1, timestamp=1260417826655,
value=\357\277\275
1 row(s) in 0.1090 seconds
{code}
In this case we insert a single byte (double quotes needed for it to interpret
the hex value correctly), but when formatted, it appears as 3 bytes in octal.
The same thing happens when the data is inserted via the Java api. For
example, this code:
{code}
HTableDescriptor tableDesc = new HTableDescriptor("t2");
tableDesc.addFamily(new HColumnDescriptor("f1"));
HBaseAdmin admin = new HBaseAdmin(new HBaseConfiguration());
admin.createTable(tableDesc);
HTable table = new HTable("t2");
Put put = new Put(Bytes.toBytes("r1"));
put.add(Bytes.toBytes("f1"), Bytes.toBytes("q1"), new byte[] {(byte) 0x91});
table.put(put);
Result result = table.get(new Get(Bytes.toBytes("r1")));
System.out.println(Bytes.toStringBinary(result.raw()[0].getValue()));
{code}
Prints out {{\x91}}
And then accessing via shell gives:
{code}
hbase(main):009:0> scan 't2'
ROW COLUMN+CELL
r1 column=f1:q1, timestamp=1260418531959,
value=\357\277\275
1 row(s) in 0.1100 seconds
{code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.