[
https://issues.apache.org/jira/browse/HBASE-14442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14951543#comment-14951543
]
Nathan commented on HBASE-14442:
--------------------------------
Before, I want to explain that we can use a ^Scan^ to read only one row as a
special case, docs are all right. Both contructors ^Scan(Get)^ and
^Scan(byte[], byte[])^ can be used to read read only row as a ^GetScan^, it‘s
working.
I mean that *MultiTableInputFormatBase.getSplits* does not contain this case
yet.
The problem is: *if the only row that we read by ^Scan^ equals a region's edge
row of ^HTable^, we use TableMapReduceUtil.initTableMapperJob(List<Scan>
scans......) to run a job, no ^Split^ (so no ^Map^) is built for this ^Scan^.*
> MultiTableInputFormatBase.getSplits dosenot build split for a scan whose
> startRow=stopRow=(startRow of a region)
> ----------------------------------------------------------------------------------------------------------------
>
> Key: HBASE-14442
> URL: https://issues.apache.org/jira/browse/HBASE-14442
> Project: HBase
> Issue Type: Bug
> Components: mapreduce
> Affects Versions: 1.1.2
> Reporter: Nathan
> Assignee: Nathan
> Original Estimate: 0.5h
> Remaining Estimate: 0.5h
>
> I created a Scan whose startRow and stopRow are the same with a region's
> startRow, then I found no map was built.
> The following is the source code of this condtion:
> (startRow.length == 0 || keys.getSecond()[i].length == 0 ||
> Bytes.compareTo(startRow, keys.getSecond()[i]) < 0) &&
> (stopRow.length == 0 || Bytes.compareTo(stopRow,
> keys.getFirst()[i]) > 0)
> I think a "=" should be added.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)