@Test public void replaceEmpty() { Mutation m = Mutation.newReplaceBuilder("T2").build(); assertThat(m.getTable()).isEqualTo("T2"); assertThat(m.getOperation()).isEqualTo(Mutation.Op.REPLACE); assertThat(m.getColumns()).isEmpty(); assertThat(m.getValues()).isEmpty(); assertThat(m.toString()).isEqualTo("replace(T2{})"); }
@Test public void insertEmpty() { Mutation m = Mutation.newInsertBuilder("T1").build(); assertThat(m.getTable()).isEqualTo("T1"); assertThat(m.getOperation()).isEqualTo(Mutation.Op.INSERT); assertThat(m.getColumns()).isEmpty(); assertThat(m.getValues()).isEmpty(); assertThat(m.toString()).isEqualTo("insert(T1{})"); }
@Test public void updateEmpty() { Mutation m = Mutation.newUpdateBuilder("T2").build(); assertThat(m.getTable()).isEqualTo("T2"); assertThat(m.getOperation()).isEqualTo(Mutation.Op.UPDATE); assertThat(m.getColumns()).isEmpty(); assertThat(m.getValues()).isEmpty(); assertThat(m.toString()).isEqualTo("update(T2{})"); }
@Test public void insertOrUpdateEmpty() { Mutation m = Mutation.newInsertOrUpdateBuilder("T2").build(); assertThat(m.getTable()).isEqualTo("T2"); assertThat(m.getOperation()).isEqualTo(Mutation.Op.INSERT_OR_UPDATE); assertThat(m.getColumns()).isEmpty(); assertThat(m.getValues()).isEmpty(); assertThat(m.toString()).isEqualTo("insert_or_update(T2{})"); }
} else { ListValue.Builder values = ListValue.newBuilder(); for (Value value : mutation.getValues()) { values.addValues(value.toProto());
@Test public void insertOrUpdate() { Mutation m = Mutation.newInsertOrUpdateBuilder("T1").set("C1").to(true).build(); assertThat(m.getTable()).isEqualTo("T1"); assertThat(m.getOperation()).isEqualTo(Mutation.Op.INSERT_OR_UPDATE); assertThat(m.getColumns()).containsExactly("C1"); assertThat(m.getValues()).containsExactly(Value.bool(true)); assertThat(m.toString()).isEqualTo("insert_or_update(T1{C1=true})"); }
@Test public void update() { Mutation m = Mutation.newUpdateBuilder("T1").set("C1").to(true).set("C2").to(1234).build(); assertThat(m.getTable()).isEqualTo("T1"); assertThat(m.getOperation()).isEqualTo(Mutation.Op.UPDATE); assertThat(m.getColumns()).containsExactly("C1", "C2").inOrder(); assertThat(m.getValues()).containsExactly(Value.bool(true), Value.int64(1234)).inOrder(); assertThat(m.toString()).isEqualTo("update(T1{C1=true,C2=1234})"); }
@Test public void replace() { Mutation m = Mutation.newReplaceBuilder("T1").set("C1").to(true).set("C2").to(1234).build(); assertThat(m.getTable()).isEqualTo("T1"); assertThat(m.getOperation()).isEqualTo(Mutation.Op.REPLACE); assertThat(m.getColumns()).containsExactly("C1", "C2").inOrder(); assertThat(m.getValues()).containsExactly(Value.bool(true), Value.int64(1234)).inOrder(); assertThat(m.toString()).isEqualTo("replace(T1{C1=true,C2=1234})"); }
@Test public void insert() { Mutation m = Mutation.newInsertBuilder("T1").set("C1").to(true).set("C2").to(1234).build(); assertThat(m.getTable()).isEqualTo("T1"); assertThat(m.getOperation()).isEqualTo(Mutation.Op.INSERT); assertThat(m.getColumns()).containsExactly("C1", "C2").inOrder(); assertThat(m.getValues()).containsExactly(Value.bool(true), Value.int64(1234)).inOrder(); assertThat(m.toString()).isEqualTo("insert(T1{C1=true,C2=1234})"); }
private static Map<String, Value> mutationAsMap(Mutation m) { Map<String, Value> result = new HashMap<>(); Iterator<String> coli = m.getColumns().iterator(); Iterator<Value> vali = m.getValues().iterator(); while (coli.hasNext()) { String column = coli.next(); Value val = vali.next(); result.put(column.toLowerCase(), val); } return result; }
/** Estimates a size of mutation in bytes. */ static long sizeOf(Mutation m) { if (m.getOperation() == Mutation.Op.DELETE) { return sizeOf(m.getKeySet()); } long result = 0; for (Value v : m.getValues()) { switch (v.getType().getCode()) { case ARRAY: result += estimateArrayValue(v); break; case STRUCT: throw new IllegalArgumentException("Structs are not supported in mutation."); default: result += estimatePrimitiveValue(v); } } return result; }
} else { ListValue.Builder values = ListValue.newBuilder(); for (Value value : mutation.getValues()) { values.addValues(value.toProto());