Geoffrey Jacoby created PHOENIX-5188:
----------------------------------------
Summary: IndexedKeyValue should populate KeyValue fields
Key: PHOENIX-5188
URL: https://issues.apache.org/jira/browse/PHOENIX-5188
Project: Phoenix
Issue Type: Bug
Affects Versions: 4.14.1, 5.0.0
Reporter: Geoffrey Jacoby
Assignee: Geoffrey Jacoby
IndexedKeyValue subclasses the HBase KeyValue class, which has three primary
fields: bytes, offset, and length. These fields aren't populated by
IndexedKeyValue because it's concerned with index mutations, and has its own
fields that its own methods use.
However, KeyValue and its Cell interface have quite a few methods that assume
these fields are populated, and the HBase-level factory methods generally
ensure they're populated. Phoenix code should do the same, to maintain the
polymorphic contract. This is important in cases like custom
ReplicationEndpoints where HBase-level code may be iterating over WALEdits that
contain both KeyValues and IndexKeyValues and may need to interrogate their
contents.
Since the index mutation has a row key, this is straightforward.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)