[ 
https://issues.apache.org/jira/browse/HBASE-22781?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zheng Wang updated HBASE-22781:
-------------------------------
    Description: 
{code:java}
public void testScanSameTimestamp() throws IOException {
  // returns only 1 of these 2 even though same timestamp
  KeyValue [] kvs = new KeyValue[] {
      create("R1", "cf", "a", 1, KeyValue.Type.Put, "dont-care"),
      create("R1", "cf", "a", 1, KeyValue.Type.Put, "dont-care"),
  };
  List<KeyValueScanner> scanners = Arrays.asList(
      new KeyValueScanner[] {
          new KeyValueScanFixture(CellComparator.getInstance(), kvs)
      });

  Scan scanSpec = new Scan().withStartRow(Bytes.toBytes("R1"));
  // this only uses maxVersions (default=1) and TimeRange (default=all)
  try (StoreScanner scan = new StoreScanner(scanSpec, scanInfo, getCols("a"), 
scanners)) {
    List<Cell> results = new ArrayList<>();
    assertEquals(true, scan.next(results));
    assertEquals(1, results.size());
    assertEquals(kvs[0], results.get(0));
  }
}
{code}
 
 It will not to compare the timestamp of the two cells,because of the 
'getCols("a")' limit one column and one version(default).

For example,modify the timestamp of the first cell to 2 can also pass.

  was:
{code:java}
public void testScanSameTimestamp() throws IOException {
  // returns only 1 of these 2 even though same timestamp
  KeyValue [] kvs = new KeyValue[] {
      create("R1", "cf", "a", 1, KeyValue.Type.Put, "dont-care"),
      create("R1", "cf", "a", 1, KeyValue.Type.Put, "dont-care"),
  };
  List<KeyValueScanner> scanners = Arrays.asList(
      new KeyValueScanner[] {
          new KeyValueScanFixture(CellComparator.getInstance(), kvs)
      });

  Scan scanSpec = new Scan().withStartRow(Bytes.toBytes("R1"));
  // this only uses maxVersions (default=1) and TimeRange (default=all)
  try (StoreScanner scan = new StoreScanner(scanSpec, scanInfo, getCols("a"), 
scanners)) {
    List<Cell> results = new ArrayList<>();
    assertEquals(true, scan.next(results));
    assertEquals(1, results.size());
    assertEquals(kvs[0], results.get(0));
  }
}
{code}
 
 It will not to compare the timestamp of the two cells,because of the 
'getCols("a")' limit one column and one version(default).


> Not suitable params of StoreScanner in the test case 
> TestStoreScanner.testScanSameTimestamp
> -------------------------------------------------------------------------------------------
>
>                 Key: HBASE-22781
>                 URL: https://issues.apache.org/jira/browse/HBASE-22781
>             Project: HBase
>          Issue Type: Bug
>          Components: test
>    Affects Versions: 2.0.0
>            Reporter: Zheng Wang
>            Priority: Minor
>
> {code:java}
> public void testScanSameTimestamp() throws IOException {
>   // returns only 1 of these 2 even though same timestamp
>   KeyValue [] kvs = new KeyValue[] {
>       create("R1", "cf", "a", 1, KeyValue.Type.Put, "dont-care"),
>       create("R1", "cf", "a", 1, KeyValue.Type.Put, "dont-care"),
>   };
>   List<KeyValueScanner> scanners = Arrays.asList(
>       new KeyValueScanner[] {
>           new KeyValueScanFixture(CellComparator.getInstance(), kvs)
>       });
>   Scan scanSpec = new Scan().withStartRow(Bytes.toBytes("R1"));
>   // this only uses maxVersions (default=1) and TimeRange (default=all)
>   try (StoreScanner scan = new StoreScanner(scanSpec, scanInfo, getCols("a"), 
> scanners)) {
>     List<Cell> results = new ArrayList<>();
>     assertEquals(true, scan.next(results));
>     assertEquals(1, results.size());
>     assertEquals(kvs[0], results.get(0));
>   }
> }
> {code}
>  
>  It will not to compare the timestamp of the two cells,because of the 
> 'getCols("a")' limit one column and one version(default).
> For example,modify the timestamp of the first cell to 2 can also pass.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to