Rushabh Shah created HBASE-25328:
------------------------------------

             Summary: Make PrivateCellUtil annotation as LimitatePrivate.
                 Key: HBASE-25328
                 URL: https://issues.apache.org/jira/browse/HBASE-25328
             Project: HBase
          Issue Type: Improvement
            Reporter: Rushabh Shah
            Assignee: Rushabh Shah


In PHOENIX-6213 phoenix project is using Cell Tag feature to add some metadata 
for delete mutations. We are adding Cell Tags in co-processor but we need some 
util methods available in +PrivateCellUtil+ class. 

Below are the methods we need in phoenix.

1. +PrivateCellUtil#createCell(Cell cell, List<Tag> tags)+ method has an api 
which will accept an existing Cell and list of tags to create a new cell. 

But RawCellBuilder has a builder method which doesn't have any method which 
accepts a cell. I need to explicitly convert my input cell by extracting all 
fields and use the builder methods (like setRow, setseFamily, etc) and then use 
the build method.

 

2. +PrivateCellUtil.getTags(Cell cell)+ returns a list of existing tags which I 
want to use and add a new tag.

But RawCell#getTags() returns Iterator<Tag>  which then I have to iterate over 
them and depending on whether they are byte buffer backed or array backed, I 
need to convert them to List since RawCellBuilder#setTags accepts List of Tags. 
We are already doing this conversion in PrivateCellUtil#getTags method.

All these conversion utility methods needs to be duplicated in phoenix project 
also.

 

Is it reasonable to make PrivateCellUtil method LimitedPrivate with 
HBaseInterfaceAudience as COPROC ?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to