[ https://issues.apache.org/jira/browse/PHOENIX-5188?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Xu Cang updated PHOENIX-5188:
-----------------------------
Attachment: PHOENIX-5188-4.x-HBase-1.4..addendum.patch
> IndexedKeyValue should populate KeyValue fields
> -----------------------------------------------
>
> Key: PHOENIX-5188
> URL: https://issues.apache.org/jira/browse/PHOENIX-5188
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 5.0.0, 4.14.1
> Reporter: Geoffrey Jacoby
> Assignee: Geoffrey Jacoby
> Priority: Major
> Fix For: 4.15.0, 5.1
>
> Attachments: PHOENIX-5188-4.x-HBase-1.4..addendum.patch, PHOENIX-5188-4.x-HBase-1.4.patch,
PHOENIX-5188.patch
>
>
> 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)