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)) {