[ 
https://issues.apache.org/jira/browse/HBASE-1990?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12790971#action_12790971
 ] 

Vaibhav Puranik commented on HBASE-1990:
----------------------------------------

The concept of  TestHTableGenerics.java is good, but unfortunately it might not 
work even for simpler use cases. Let's discuss the following example:
{noformat}
Put<String, String, String, String> put =      new Put<String, String, String, 
String>("row1");
    put.add("family", "stringtest", "stringdata");
    ht.put(put.getPut());
{noformat}
The above example forces you to pick a data type for values at the 
instantiation of the Put object. But in most cases (at least in our software) 
we have different data types in a row such as Long, String, Custom Object etc.
Even a typical relational database table always have multiple data types in a 
row.

If you exclude the value and keep the value as byte array, it should be 
sufficient for 80% of the use cases. (Even though we have many columns where 
the column name is not a string, they are a minority)

> Add methods accepting strings for family/qualifier in client 
> -------------------------------------------------------------
>
>                 Key: HBASE-1990
>                 URL: https://issues.apache.org/jira/browse/HBASE-1990
>             Project: Hadoop HBase
>          Issue Type: Improvement
>          Components: client
>    Affects Versions: 0.20.0
>            Reporter: Doug Meil
>            Priority: Minor
>             Fix For: 0.20.3, 0.21.0
>
>         Attachments: TestHTableGenerics.java
>
>
> Consider the following client code...
>       byte b[] = result.getValue( Bytes.toBytes("family"), 
> Bytes.toBytes("qualifier") );
>         put.add( Bytes.toBytes("family"), Bytes.toBytes("qualifer"), 
> Bytes.toBytes( "value")  );
> ... the requirement to supply family and qualifiers as bytes causes code to 
> get cluttered and verbose.  At worst, it scares peoples un-necessarily about 
> HBase development, and at best, developers inevitably will get tired of doing 
> all this casting and then add their own wrapper classes around the HBase 
> client to make their code more readable.
> I would like to see something like this in the API...
>       byte b[] = result.getValue( "family"), "qualifier" );
>         put.add( "family", "qualifer", Bytes.toBytes( "value")  );
> ... where the Hbase client can perform the required Bytes.toBytes() 
> conversion behind the scenes.

-- 
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