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)