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)

Reply via email to