@Override public boolean equals(Object o) { if (this == o) { return true; } if (o instanceof ColumnValue) { ColumnValue ocv = (ColumnValue) o; return column.equals(ocv.column) && val.equals(ocv.val); } return false; }
@Override public boolean equals(Object o) { if (o instanceof PrimaryRowColumn) { PrimaryRowColumn ock = (PrimaryRowColumn) o; return prow.equals(ock.prow) && pcol.equals(ock.pcol) && startTs == ock.startTs; } return false; }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (o instanceof ColumnValue) { ColumnValue ocv = (ColumnValue) o; return column.equals(ocv.column) && val.equals(ocv.val); } return false; }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (o instanceof RowColumn) { RowColumn other = (RowColumn) o; return row.equals(other.row) && col.equals(other.col); } return false; }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (o instanceof RowColumn) { RowColumn other = (RowColumn) o; return row.equals(other.row) && col.equals(other.col); } return false; }
@Override public boolean equals(Object o) { if (o instanceof PrimaryRowColumn) { PrimaryRowColumn ock = (PrimaryRowColumn) o; return prow.equals(ock.prow) && pcol.equals(ock.pcol) && startTs == ock.startTs; } return false; }
@Override public Collection<Mutation> createMutations(CommitData cd) { long commitTs = getStats().getCommitTs(); ArrayList<Mutation> mutations = new ArrayList<>(updates.size() + 1); for (Entry<Bytes, Map<Column, Bytes>> rowUpdates : updates.entrySet()) { Flutation m = new Flutation(env, rowUpdates.getKey()); boolean isTriggerRow = isTriggerRow(rowUpdates.getKey()); for (Entry<Column, Bytes> colUpdates : rowUpdates.getValue().entrySet()) { ColumnUtil.commitColumn(env, isTriggerRow && colUpdates.getKey().equals(notification.getColumn()), false, colUpdates.getKey(), isWrite(colUpdates.getValue()), isDelete(colUpdates.getValue()), isReadLock(colUpdates.getValue()), startTs, commitTs, observedColumns, m); } mutations.add(m); } return mutations; }
@Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof RowColumnValue) { RowColumnValue orcv = (RowColumnValue) o; return row.equals(orcv.row) && col.equals(orcv.col) && val.equals(orcv.val); } return false; }
@Override public Collection<Mutation> createMutations(CommitData cd) { long commitTs = getStats().getCommitTs(); ArrayList<Mutation> mutations = new ArrayList<>(updates.size() + 1); for (Entry<Bytes, Map<Column, Bytes>> rowUpdates : updates.entrySet()) { Flutation m = new Flutation(env, rowUpdates.getKey()); boolean isTriggerRow = isTriggerRow(rowUpdates.getKey()); for (Entry<Column, Bytes> colUpdates : rowUpdates.getValue().entrySet()) { ColumnUtil.commitColumn(env, isTriggerRow && colUpdates.getKey().equals(notification.getColumn()), false, colUpdates.getKey(), isWrite(colUpdates.getValue()), isDelete(colUpdates.getValue()), isReadLock(colUpdates.getValue()), startTs, commitTs, observedColumns, m); } mutations.add(m); } return mutations; }
@Override public boolean equals(Object o) { if (o instanceof LogEntry) { LogEntry other = (LogEntry) o; return ((op == other.op) && row.equals(other.row) && col.equals(other.col) && value.equals(other.value)); } return false; }
@Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof RowColumnValue) { RowColumnValue orcv = (RowColumnValue) o; return row.equals(orcv.row) && col.equals(orcv.col) && val.equals(orcv.val); } return false; }
@Test public void testSame() { Set<RowColumnValue> expected = genData(); Column col1 = new Column("f1", "q1"); Column col2 = new Column("f2", "q3"); HashSet<RowColumnValue> expectedC = new HashSet<>(); Iterables.addAll(expectedC, Iterables.filter(expected, rcv -> rcv.getColumn().equals(col1) || rcv.getColumn().equals(col2))); Assert.assertEquals(3, expectedC.size()); try (Snapshot snap = client.newSnapshot()) { CellScanner scanner = snap.scanner().fetch(col1, col2).build(); HashSet<RowColumnValue> actual = new HashSet<>(); Bytes prevRow = null; for (RowColumnValue rcv : scanner) { actual.add(rcv); Column c = rcv.getColumn(); Assert.assertTrue((col1.equals(c) && col1 == c) || (col2.equals(c) && col2 == c)); if (col2.equals(c)) { Assert.assertEquals(Bytes.of("r1"), rcv.getRow()); Assert.assertSame(rcv.getRow(), prevRow); } prevRow = rcv.getRow(); } Assert.assertEquals(expectedC, actual); } }
private static boolean isPrimary(PrimaryRowColumn prc, Key k) { return prc.prow.equals(ByteUtil.toBytes(k.getRowData())) && prc.pcol.equals(SpanUtil.toRowColumn(k).getColumn()); }
private static boolean isPrimary(PrimaryRowColumn prc, Key k) { return prc.prow.equals(ByteUtil.toBytes(k.getRowData())) && prc.pcol.equals(SpanUtil.toRowColumn(k).getColumn()); }
@Override public Collection<ConditionalMutation> createMutations(CommitData cd) { long commitTs = getStats().getCommitTs(); IteratorSetting iterConf = new IteratorSetting(10, PrewriteIterator.class); PrewriteIterator.setSnaptime(iterConf, startTs); boolean isTrigger = isTriggerRow(cd.prow) && cd.pcol.equals(notification.getColumn()); Condition lockCheck = new FluoCondition(env, cd.pcol).setIterators(iterConf).setValue(LockValue.encode(cd.prow, cd.pcol, isWrite(cd.pval), isDelete(cd.pval), isTrigger, getTransactorID())); final ConditionalMutation delLockMutation = new ConditionalFlutation(env, cd.prow, lockCheck); ColumnUtil.commitColumn(env, isTrigger, true, cd.pcol, isWrite(cd.pval), isDelete(cd.pval), isReadLock(cd.pval), startTs, commitTs, observedColumns, delLockMutation); return Collections.singletonList(delLockMutation); }
@Override public Collection<ConditionalMutation> createMutations(CommitData cd) { long commitTs = getStats().getCommitTs(); IteratorSetting iterConf = new IteratorSetting(10, PrewriteIterator.class); PrewriteIterator.setSnaptime(iterConf, startTs); boolean isTrigger = isTriggerRow(cd.prow) && cd.pcol.equals(notification.getColumn()); Condition lockCheck = new FluoCondition(env, cd.pcol).setIterators(iterConf).setValue(LockValue.encode(cd.prow, cd.pcol, isWrite(cd.pval), isDelete(cd.pval), isTrigger, getTransactorID())); final ConditionalMutation delLockMutation = new ConditionalFlutation(env, cd.prow, lockCheck); ColumnUtil.commitColumn(env, isTrigger, true, cd.pcol, isWrite(cd.pval), isDelete(cd.pval), isReadLock(cd.pval), startTs, commitTs, observedColumns, delLockMutation); return Collections.singletonList(delLockMutation); }
/** * Returns a RowColumn following the current one * * @return RowColumn following this one */ public RowColumn following() { if (row.equals(Bytes.EMPTY)) { return RowColumn.EMPTY; } else if (col.equals(Column.EMPTY)) { return new RowColumn(followingBytes(row)); } else if (!col.isQualifierSet()) { return new RowColumn(row, new Column(followingBytes(col.getFamily()))); } else if (!col.isVisibilitySet()) { return new RowColumn(row, new Column(col.getFamily(), followingBytes(col.getQualifier()))); } else { return new RowColumn(row, new Column(col.getFamily(), col.getQualifier(), followingBytes(col.getVisibility()))); } }
/** * Returns a RowColumn following the current one * * @return RowColumn following this one */ public RowColumn following() { if (row.equals(Bytes.EMPTY)) { return RowColumn.EMPTY; } else if (col.equals(Column.EMPTY)) { return new RowColumn(followingBytes(row)); } else if (!col.isQualifierSet()) { return new RowColumn(row, new Column(followingBytes(col.getFamily()))); } else if (!col.isVisibilitySet()) { return new RowColumn(row, new Column(col.getFamily(), followingBytes(col.getQualifier()))); } else { return new RowColumn(row, new Column(col.getFamily(), col.getQualifier(), followingBytes(col.getVisibility()))); } }
/** * Converts from a Fluo RowColumn to a Accumulo Key * * @param rc RowColumn * @return Key */ public static Key toKey(RowColumn rc) { if ((rc == null) || (rc.getRow().equals(Bytes.EMPTY))) { return null; } Text row = ByteUtil.toText(rc.getRow()); if ((rc.getColumn().equals(Column.EMPTY)) || !rc.getColumn().isFamilySet()) { return new Key(row); } Text cf = ByteUtil.toText(rc.getColumn().getFamily()); if (!rc.getColumn().isQualifierSet()) { return new Key(row, cf); } Text cq = ByteUtil.toText(rc.getColumn().getQualifier()); if (!rc.getColumn().isVisibilitySet()) { return new Key(row, cf, cq); } Text cv = ByteUtil.toText(rc.getColumn().getVisibility()); return new Key(row, cf, cq, cv); }
/** * Converts from a Fluo RowColumn to a Accumulo Key * * @param rc RowColumn * @return Key */ public static Key toKey(RowColumn rc) { if ((rc == null) || (rc.getRow().equals(Bytes.EMPTY))) { return null; } Text row = ByteUtil.toText(rc.getRow()); if ((rc.getColumn().equals(Column.EMPTY)) || !rc.getColumn().isFamilySet()) { return new Key(row); } Text cf = ByteUtil.toText(rc.getColumn().getFamily()); if (!rc.getColumn().isQualifierSet()) { return new Key(row, cf); } Text cq = ByteUtil.toText(rc.getColumn().getQualifier()); if (!rc.getColumn().isVisibilitySet()) { return new Key(row, cf, cq); } Text cv = ByteUtil.toText(rc.getColumn().getVisibility()); return new Key(row, cf, cq, cv); }