private List<TCondition> convertConditions(ConditionalMutation cm, CompressedIterators compressedIters) { List<TCondition> conditions = new ArrayList<>(cm.getConditions().size()); // sort conditions inorder to get better lookup performance. Sort on client side so tserver does // not have to do it. Condition[] ca = cm.getConditions().toArray(new Condition[cm.getConditions().size()]); Arrays.sort(ca, CONDITION_COMPARATOR); for (Condition cond : ca) { long ts = 0; boolean hasTs = false; if (cond.getTimestamp() != null) { ts = cond.getTimestamp(); hasTs = true; } ByteBuffer iters = compressedIters.compress(cond.getIterators()); TCondition tc = new TCondition(ByteBufferUtil.toByteBuffers(cond.getFamily()), ByteBufferUtil.toByteBuffers(cond.getQualifier()), ByteBufferUtil.toByteBuffers(cond.getVisibility()), ts, hasTs, ByteBufferUtil.toByteBuffers(cond.getValue()), iters); conditions.add(tc); } return conditions; }
@Override public int compare(Condition c1, Condition c2) { int comp = c1.getFamily().compareTo(c2.getFamily()); if (comp == 0) { comp = c1.getQualifier().compareTo(c2.getQualifier()); if (comp == 0) { comp = c1.getVisibility().compareTo(c2.getVisibility()); if (comp == 0) { Long l1 = c1.getTimestamp(); Long l2 = c2.getTimestamp(); if (l1 == null) { l1 = MAX; } if (l2 == null) { l2 = MAX; } comp = l2.compareTo(l1); } } } return comp; } }
private List<TCondition> convertConditions(ConditionalMutation cm, CompressedIterators compressedIters) { List<TCondition> conditions = new ArrayList<>(cm.getConditions().size()); // sort conditions inorder to get better lookup performance. Sort on client side so tserver does // not have to do it. Condition[] ca = cm.getConditions().toArray(new Condition[cm.getConditions().size()]); Arrays.sort(ca, CONDITION_COMPARATOR); for (Condition cond : ca) { long ts = 0; boolean hasTs = false; if (cond.getTimestamp() != null) { ts = cond.getTimestamp(); hasTs = true; } ByteBuffer iters = compressedIters.compress(cond.getIterators()); TCondition tc = new TCondition(ByteBufferUtil.toByteBuffers(cond.getFamily()), ByteBufferUtil.toByteBuffers(cond.getQualifier()), ByteBufferUtil.toByteBuffers(cond.getVisibility()), ts, hasTs, ByteBufferUtil.toByteBuffers(cond.getValue()), iters); conditions.add(tc); } return conditions; }
public static org.apache.accumulo.proxy.thrift.Condition toThrift(Condition condition) { if (condition == null) { return null; } org.apache.accumulo.proxy.thrift.Condition tcondition = new org.apache.accumulo.proxy.thrift.Condition(); org.apache.accumulo.proxy.thrift.Column col = new org.apache.accumulo.proxy.thrift.Column(); if (condition.getFamily() != null) { col.setColFamily(condition.getFamily().getBackingArray()); } if (condition.getQualifier() != null) { col.setColQualifier(condition.getQualifier().getBackingArray()); } if (col.getColVisibility() != null) { col.setColVisibility(condition.getQualifier().getBackingArray()); } tcondition.setColumn(col); if (condition.getTimestamp() != null) { tcondition.setTimestamp(condition.getTimestamp()); } if (condition.getValue() != null) { tcondition.setValue(condition.getValue().getBackingArray()); } tcondition.setIterators(toThriftIteratorSettings(Arrays.asList(condition.getIterators()))); return tcondition; }