You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Nihal Jain (JIRA)" <ji...@apache.org> on 2018/04/02 06:32:00 UTC
[jira] [Created] (HBASE-20327) When qualifier is not specified,
append and incr operation do not work (shell)
Nihal Jain created HBASE-20327:
----------------------------------
Summary: When qualifier is not specified, append and incr operation do not work (shell)
Key: HBASE-20327
URL: https://issues.apache.org/jira/browse/HBASE-20327
Project: HBase
Issue Type: Bug
Components: shell
Affects Versions: 1.3.1, 3.0.0, 2.0.0
Reporter: Nihal Jain
Running the example commands specified in shell docs for "append" and "incr" throw following error:
{code:java}
ERROR: Failed to provide both column family and column qualifier for append{code}
{code:java}
ERROR: Failed to provide both column family and column qualifier for incr{code}
While running the same command via java does not require the user to provide both column and qualifier and works smoothly.
Steps to reproduce:
1) APPEND
{code:java}
hbase(main):002:0> create 't1', 'c1', 'c2'
Created table t1
Took 0.8151 seconds
hbase(main):003:0> append 't1', 'r1', 'c1', 'value'
ERROR: Failed to provide both column family and column qualifier for append
Appends a cell 'value' at specified table/row/column coordinates.
hbase> append 't1', 'r1', 'c1', 'value', ATTRIBUTES=>{'mykey'=>'myvalue'}
hbase> append 't1', 'r1', 'c1', 'value', {VISIBILITY=>'PRIVATE|SECRET'}
The same commands also can be run on a table reference. Suppose you had a reference
t to table 't1', the corresponding command would be:
hbase> t.append 'r1', 'c1', 'value', ATTRIBUTES=>{'mykey'=>'myvalue'}
hbase> t.append 'r1', 'c1', 'value', {VISIBILITY=>'PRIVATE|SECRET'}
Took 0.0326 seconds {code}
While the same command would run if we run the following java code:
{code:java}
try (Connection connection = ConnectionFactory.createConnection(config);
Admin admin = connection.getAdmin();) {
Table table = connection.getTable(TableName.valueOf("t1"));
Append a = new Append(Bytes.toBytes("r1"));
a.addColumn(Bytes.toBytes("c1"), null, Bytes.toBytes("value"));
table.append(a);
}{code}
Scan result after executing java code:
{code:java}
hbase(main):005:0> scan 't1'
ROW COLUMN+CELL
r1 column=c1:, timestamp=1522649623090, value=value
1 row(s)
Took 0.0188 seconds
{code}
2) INCREMENT:
Similarly in case of increment, we get the following error (shell):
{code:java}
hbase(main):006:0> incr 't1', 'r2', 'c1', 111
ERROR: Failed to provide both column family and column qualifier for incr
Increments a cell 'value' at specified table/row/column coordinates.
To increment a cell value in table 'ns1:t1' or 't1' at row 'r1' under column
'c1' by 1 (can be omitted) or 10 do:
hbase> incr 'ns1:t1', 'r1', 'c1'
hbase> incr 't1', 'r1', 'c1'
hbase> incr 't1', 'r1', 'c1', 1
hbase> incr 't1', 'r1', 'c1', 10
hbase> incr 't1', 'r1', 'c1', 10, {ATTRIBUTES=>{'mykey'=>'myvalue'}}
hbase> incr 't1', 'r1', 'c1', {ATTRIBUTES=>{'mykey'=>'myvalue'}}
hbase> incr 't1', 'r1', 'c1', 10, {VISIBILITY=>'PRIVATE|SECRET'}
The same commands also can be run on a table reference. Suppose you had a reference
t to table 't1', the corresponding command would be:
hbase> t.incr 'r1', 'c1'
hbase> t.incr 'r1', 'c1', 1
hbase> t.incr 'r1', 'c1', 10, {ATTRIBUTES=>{'mykey'=>'myvalue'}}
hbase> t.incr 'r1', 'c1', 10, {VISIBILITY=>'PRIVATE|SECRET'}
Took 0.0103 seconds
hbase(main):007:0> scan 't1'
ROW COLUMN+CELL
r1 column=c1:, timestamp=1522649623090, value=value
1 row(s)
Took 0.0062 seconds
{code}
While the same command would run, if we run the following java code:
{code:java}
try (Connection connection = ConnectionFactory.createConnection(config);
Admin admin = connection.getAdmin();) {
Table table = connection.getTable(TableName.valueOf("t1"));
Increment incr = new Increment(Bytes.toBytes("r2"));
incr.addColumn(Bytes.toBytes("c1"), null, 111);
table.increment(incr);
scan(table);
}
{code}
Scan result after executing java code:
{code:java}
hbase(main):008:0> scan 't1'
ROW COLUMN+CELL
r1 column=c1:, timestamp=1522649623090, value=value
r2 column=c1:, timestamp=1522649933949, value=\x00\x00\x00\x00\x00\x00\x00o
2 row(s)
Took 0.0133 seconds {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)