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.

Reply via email to