stack commented on HBASE-5548:

Sorry Jesse for taking a while to get back to this.  Patch looks good.  I tried 
it some more and got this:

hbase(main):011:0> t.put 'x', 'y:x', 'x'
0 row(s) in 0.0110 seconds
hbase(main):012:0> t.get 'x'
COLUMN                                               CELL                       

ERROR: undefined method `get_internal' for Hbase::Table - y:Hbase::Table

Here is some help for this command:
Get row or cell contents; pass table name, row, and optionally
a dictionary of column(s), timestamp, timerange and versions. Examples:

  hbase> get 't1', 'r1'
  hbase> get 't1', 'r1', {TIMERANGE => [ts1, ts2]}
  hbase> get 't1', 'r1', {COLUMN => 'c1'}
  hbase> get 't1', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
  hbase> get 't1', 'r1', {COLUMN => 'c1', TIMESTAMP => ts1}
  hbase> get 't1', 'r1', {COLUMN => 'c1', TIMERANGE => [ts1, ts2], VERSIONS => 
  hbase> get 't1', 'r1', {COLUMN => 'c1', TIMESTAMP => ts1, VERSIONS => 4}
  hbase> get 't1', 'r1', 'c1'
  hbase> get 't1', 'r1', 'c1', 'c2'
  hbase> get 't1', 'r1', ['c1', 'c2']

The same commands also can be run on a table reference. Suppose you had a 
t to table 't1', the corresponding commands would be:

  hbase> t.get 'r1'
  hbase> t.get 'r1', {TIMERANGE => [ts1, ts2]}
  hbase> t.get 'r1', {COLUMN => 'c1'}
  hbase> t.get 'r1', {COLUMN => ['c1', 'c2', 'c3']}
  hbase> t.get 'r1', {COLUMN => 'c1', TIMESTAMP => ts1}
  hbase> t.get 'r1', {COLUMN => 'c1', TIMERANGE => [ts1, ts2], VERSIONS => 4}
  hbase> t.get 'r1', {COLUMN => 'c1', TIMESTAMP => ts1, VERSIONS => 4}
  hbase> t.get 'r1', 'c1'
  hbase> t.get 'r1', 'c1', 'c2'
  hbase> t.get 'r1', ['c1', 'c2']

Seems like an issue?

Also in the help, talks about a table reference without explaining what it is 
(there is no mention of what this is in the general help either it seems).  It 
could be confusing talking about a 't' w/o saying where it came from?

I like the output of t.help.

This is odd though:

  hbase> t.put 'r', 'c', 'q', 'v'
 which puts a row 'r' with column family 'c', qualifier 'q' and value 'v' into 
table t.

In the rest of the shell columns are a combo of family and qualifier delimited 
by the ':'.  You are changing that w/ the above.

> Add ability to get a table in the shell
> ---------------------------------------
>                 Key: HBASE-5548
>                 URL: https://issues.apache.org/jira/browse/HBASE-5548
>             Project: HBase
>          Issue Type: Improvement
>          Components: shell
>            Reporter: Jesse Yates
>            Assignee: Jesse Yates
>             Fix For: 0.96.0, 0.94.1
>         Attachments: ruby_HBASE-5528-v0.patch, ruby_HBASE-5548-v1.patch, 
> ruby_HBASE-5548-v2.patch, ruby_HBASE-5548-v3.patch
> Currently, all the commands that operate on a table in the shell first have 
> to take the table as name as input. 
> There are two main considerations:
> * It is annoying to have to write the table name every time, when you should 
> just be able to get a reference to a table
> * the current implementation is very wasteful - it creates a new HTable for 
> each call (but reuses the connection since it uses the same configuration)
> We should be able to get a handle to a single HTable and then operate on that.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to