You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "ryan rawson (JIRA)" <ji...@apache.org> on 2009/06/18 08:11:07 UTC

[jira] Updated: (HBASE-1541) Scanning multiple column families in the presence of deleted families results in bad scans

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

ryan rawson updated HBASE-1541:
-------------------------------

    Description: 
This unit test fails:

{noformat}
  public void testScanner_DeleteOneFamilyNotAnother() throws IOException {
    byte [] tableName = Bytes.toBytes("test_table");
    byte [] fam1 = Bytes.toBytes("columnA");
    byte [] fam2 = Bytes.toBytes("columnB");
    initHRegion(tableName, getName(), fam1, fam2);

    byte [] rowA = Bytes.toBytes("rowA");
    byte [] rowB = Bytes.toBytes("rowB");

    byte [] value = Bytes.toBytes("value");

    Delete delete = new Delete(rowA);
    delete.deleteFamily(fam1);

    region.delete(delete, null, true);

    // now create data.
    Put put = new Put(rowA);
    put.add(fam2, null, value);
    region.put(put);

    put = new Put(rowB);
    put.add(fam1, null, value);
    put.add(fam2, null, value);
    region.put(put);

    Scan scan = new Scan();
    scan.addFamily(fam1).addFamily(fam2);
    InternalScanner s = region.getScanner(scan);
    List<KeyValue> results = new ArrayList<KeyValue>();
    s.next(results);
    assertTrue(Bytes.equals(rowA, results.get(0).getRow()));

    results.clear();
    s.next(results);
    assertTrue(Bytes.equals(rowB, results.get(0).getRow()));

  }
{noformat}


  was:
This unit test fails:

  public void testScanner_DeleteOneFamilyNotAnother() throws IOException {
    byte [] tableName = Bytes.toBytes("test_table");
    byte [] fam1 = Bytes.toBytes("columnA");
    byte [] fam2 = Bytes.toBytes("columnB");
    initHRegion(tableName, getName(), fam1, fam2);

    byte [] rowA = Bytes.toBytes("rowA");
    byte [] rowB = Bytes.toBytes("rowB");

    byte [] value = Bytes.toBytes("value");

    Delete delete = new Delete(rowA);
    delete.deleteFamily(fam1);

    region.delete(delete, null, true);

    // now create data.
    Put put = new Put(rowA);
    put.add(fam2, null, value);
    region.put(put);

    put = new Put(rowB);
    put.add(fam1, null, value);
    put.add(fam2, null, value);
    region.put(put);

    Scan scan = new Scan();
    scan.addFamily(fam1).addFamily(fam2);
    InternalScanner s = region.getScanner(scan);
    List<KeyValue> results = new ArrayList<KeyValue>();
    s.next(results);
    assertTrue(Bytes.equals(rowA, results.get(0).getRow()));

    results.clear();
    s.next(results);
    assertTrue(Bytes.equals(rowB, results.get(0).getRow()));

  }



> Scanning multiple column families in the presence of deleted families results in bad scans
> ------------------------------------------------------------------------------------------
>
>                 Key: HBASE-1541
>                 URL: https://issues.apache.org/jira/browse/HBASE-1541
>             Project: Hadoop HBase
>          Issue Type: Bug
>    Affects Versions: 0.20.0
>            Reporter: ryan rawson
>             Fix For: 0.20.0
>
>
> This unit test fails:
> {noformat}
>   public void testScanner_DeleteOneFamilyNotAnother() throws IOException {
>     byte [] tableName = Bytes.toBytes("test_table");
>     byte [] fam1 = Bytes.toBytes("columnA");
>     byte [] fam2 = Bytes.toBytes("columnB");
>     initHRegion(tableName, getName(), fam1, fam2);
>     byte [] rowA = Bytes.toBytes("rowA");
>     byte [] rowB = Bytes.toBytes("rowB");
>     byte [] value = Bytes.toBytes("value");
>     Delete delete = new Delete(rowA);
>     delete.deleteFamily(fam1);
>     region.delete(delete, null, true);
>     // now create data.
>     Put put = new Put(rowA);
>     put.add(fam2, null, value);
>     region.put(put);
>     put = new Put(rowB);
>     put.add(fam1, null, value);
>     put.add(fam2, null, value);
>     region.put(put);
>     Scan scan = new Scan();
>     scan.addFamily(fam1).addFamily(fam2);
>     InternalScanner s = region.getScanner(scan);
>     List<KeyValue> results = new ArrayList<KeyValue>();
>     s.next(results);
>     assertTrue(Bytes.equals(rowA, results.get(0).getRow()));
>     results.clear();
>     s.next(results);
>     assertTrue(Bytes.equals(rowB, results.get(0).getRow()));
>   }
> {noformat}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.