You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ec...@apache.org on 2013/10/22 16:29:48 UTC

[4/4] git commit: ACCUMULO-1800 fix deletes, added test

ACCUMULO-1800 fix deletes, added test


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/8ec4cb84
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/8ec4cb84
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/8ec4cb84

Branch: refs/heads/master
Commit: 8ec4cb840aff77bba3f3dc2e1b98a1c4de7c89ab
Parents: fb82945 3143b9c
Author: Eric Newton <er...@gmail.com>
Authored: Tue Oct 22 10:30:07 2013 -0400
Committer: Eric Newton <er...@gmail.com>
Committed: Tue Oct 22 10:30:07 2013 -0400

----------------------------------------------------------------------
 .../org/apache/accumulo/proxy/ProxyServer.java  | 12 +++++-----
 .../org/apache/accumulo/proxy/SimpleTest.java   | 24 ++++++++++++++++++++
 2 files changed, 30 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/8ec4cb84/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java
----------------------------------------------------------------------
diff --cc proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java
index cec8cfc,c6e74f1..ee993b9
--- a/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java
@@@ -1161,41 -1144,6 +1161,41 @@@ public class ProxyServer implements Acc
      }
    }
    
 +  private void addUpdatesToMutation(HashMap<Text,ColumnVisibility> vizMap, Mutation m, List<ColumnUpdate> cu) {
 +    for (ColumnUpdate update : cu) {
 +      ColumnVisibility viz = EMPTY_VIS;
 +      if (update.isSetColVisibility()) {
 +        viz = getCahcedCV(vizMap, update.getColVisibility());
 +      }
 +      byte[] value = new byte[0];
 +      if (update.isSetValue())
 +        value = update.getValue();
 +      if (update.isSetTimestamp()) {
 +        if (update.isSetDeleteCell()) {
 +          m.putDelete(update.getColFamily(), update.getColQualifier(), viz, update.getTimestamp());
 +        } else {
-           if (update.isSetDeleteCell()) {
-             m.putDelete(update.getColFamily(), update.getColQualifier(), viz, update.getTimestamp());
-           } else {
-             m.put(update.getColFamily(), update.getColQualifier(), viz, update.getTimestamp(), value);
-           }
++          m.put(update.getColFamily(), update.getColQualifier(), viz, update.getTimestamp(), value);
 +        }
 +      } else {
-         m.put(update.getColFamily(), update.getColQualifier(), viz, value);
++        if (update.isSetDeleteCell()) {
++          m.putDelete(new Text(update.getColFamily()), new Text(update.getColQualifier()), viz);
++        } else {
++          m.put(new Text(update.getColFamily()), new Text(update.getColQualifier()), viz, new Value(value));
++        }
 +      }
 +    }
 +  }
 +  
 +  private static ColumnVisibility getCahcedCV(HashMap<Text,ColumnVisibility> vizMap, byte[] cv) {
 +    ColumnVisibility viz;
 +    Text vizText = new Text(cv);
 +    viz = vizMap.get(vizText);
 +    if (viz == null) {
 +      vizMap.put(vizText, viz = new ColumnVisibility(vizText));
 +    }
 +    return viz;
 +  }
 +  
    @Override
    public String createWriter(ByteBuffer login, String tableName, WriterOptions opts) throws org.apache.accumulo.proxy.thrift.AccumuloException,
        org.apache.accumulo.proxy.thrift.AccumuloSecurityException, org.apache.accumulo.proxy.thrift.TableNotFoundException, TException {

http://git-wip-us.apache.org/repos/asf/accumulo/blob/8ec4cb84/proxy/src/test/java/org/apache/accumulo/proxy/SimpleTest.java
----------------------------------------------------------------------
diff --cc proxy/src/test/java/org/apache/accumulo/proxy/SimpleTest.java
index 242ef08,3bd552d..8b1ab8b
--- a/proxy/src/test/java/org/apache/accumulo/proxy/SimpleTest.java
+++ b/proxy/src/test/java/org/apache/accumulo/proxy/SimpleTest.java
@@@ -699,8 -678,33 +699,32 @@@ public class SimpleTest 
        fail("exception not thrown");
      } catch (UnknownWriter uw) {}
    }
 -  
 +
    @Test(timeout = 10000)
+   public void testDelete() throws Exception {
 -    if (client.tableExists(creds, TABLE_TEST))
 -      client.deleteTable(creds, TABLE_TEST);
++    final String TABLE_TEST = makeTableName();
+ 
+     client.createTable(creds, TABLE_TEST, true, TimeType.MILLIS);
+     client.updateAndFlush(creds, TABLE_TEST, mutation("row0", "cf", "cq", "value"));
+     String scanner = client.createScanner(creds, TABLE_TEST, null);
+     ScanResult entries = client.nextK(scanner, 10);
+     client.closeScanner(scanner);
+     assertFalse(entries.more);
+     assertEquals(1, entries.results.size());
+     
+     ColumnUpdate upd = new ColumnUpdate(s2bb("cf"), s2bb("cq"));
+     upd.setDeleteCell(true);
+     Map<ByteBuffer,List<ColumnUpdate>> delete = Collections.singletonMap(s2bb("row0"), Collections.singletonList(upd));
+     
+     client.updateAndFlush(creds, TABLE_TEST, delete);
+     
+     scanner = client.createScanner(creds, TABLE_TEST, null);
+     entries = client.nextK(scanner, 10);
+     client.closeScanner(scanner);
+     assertEquals(0, entries.results.size());
+   }
+ 
+   @Test(timeout = 10000)
    public void testInstanceOperations() throws Exception {
      int tservers = 0;
      for (String tserver : client.getTabletServers(creds)) {