keyValue.setTimestamp(20000); keyValue.setSequenceId(1000); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); keyValue.setTimestamp(19999); keyValue.setSequenceId(999); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); keyValue.setTimestamp(19999); keyValue.setSequenceId(998); assertEquals(DeleteResult.VERSION_MASKED, tracker.isDeleted(keyValue)); keyValue.setTimestamp(19998); keyValue.setSequenceId(997); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); keyValue.setTimestamp(19997); keyValue.setSequenceId(996); assertEquals(DeleteResult.VERSION_MASKED, tracker.isDeleted(keyValue)); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); keyValue.setTimestamp(19999); keyValue.setSequenceId(1002); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); keyValue.setTimestamp(19999); keyValue.setSequenceId(1001); assertEquals(DeleteResult.VERSION_MASKED, tracker.isDeleted(keyValue)); keyValue.setTimestamp(19998); keyValue.setSequenceId(1003); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); keyValue.setTimestamp(19997); keyValue.setSequenceId(1004); assertEquals(DeleteResult.VERSION_MASKED, tracker.isDeleted(keyValue));
@Test public void testColumns() throws IOException { TreeSet<byte[]> trackedColumns = new TreeSet<byte[]>(Bytes.BYTES_COMPARATOR); trackedColumns.add(col1); trackedColumns.add(col3); NewVersionBehaviorTracker tracker = new NewVersionBehaviorTracker(trackedColumns, comparator, 1, 3, 3, 10000); KeyValue keyValue = new KeyValue(row, family, col0, 20000, KeyValue.Type.Put, value); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.SEEK_NEXT_COL, tracker.checkColumn(keyValue, keyValue.getTypeByte())); keyValue = new KeyValue(row, family, col1, 20000, KeyValue.Type.Put, value); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.INCLUDE, tracker.checkColumn(keyValue, keyValue.getTypeByte())); keyValue = new KeyValue(row, family, col2, 20000, KeyValue.Type.Put, value); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.SEEK_NEXT_COL, tracker.checkColumn(keyValue, keyValue.getTypeByte())); keyValue = new KeyValue(row, family, col3, 20000, KeyValue.Type.Put, value); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.INCLUDE, tracker.checkColumn(keyValue, keyValue.getTypeByte())); keyValue = new KeyValue(row, family, col4, 20000, KeyValue.Type.Put, value); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.SEEK_NEXT_ROW, tracker.checkColumn(keyValue, keyValue.getTypeByte())); }
@Test public void testFamilyVersionDelete() { NewVersionBehaviorTracker tracker = new NewVersionBehaviorTracker(null, comparator, 1, 3, 3, 10000); KeyValue delete = new KeyValue(row, family, null, 20000, KeyValue.Type.DeleteFamilyVersion, value); delete.setSequenceId(1000); delete.setTimestamp(20000); tracker.add(delete); KeyValue put = new KeyValue(row, family, col1, 20000, KeyValue.Type.Put, value); put.setSequenceId(1001); put.setTimestamp(20000); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(put)); put.setSequenceId(999); put.setTimestamp(20000); assertEquals(DeleteResult.VERSION_DELETED, tracker.isDeleted(put)); put = new KeyValue(row, family, col2, 20000, KeyValue.Type.Put, value); put.setSequenceId(1001); put.setTimestamp(20000); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(put)); put.setSequenceId(999); put.setTimestamp(20000); assertEquals(DeleteResult.VERSION_DELETED, tracker.isDeleted(put)); put.setSequenceId(1002); put.setTimestamp(19999); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(put)); put.setSequenceId(998); put.setTimestamp(19999); assertEquals(DeleteResult.VERSION_MASKED, tracker.isDeleted(put)); }
@Test public void testFamilyVersionsDelete() { NewVersionBehaviorTracker tracker = new NewVersionBehaviorTracker(null, comparator, 1, 3, 3, 10000); KeyValue delete = new KeyValue(row, family, null, 20000, KeyValue.Type.DeleteFamily, value); delete.setSequenceId(1000); delete.setTimestamp(20000); KeyValue put = new KeyValue(row, family, col1, 20000, KeyValue.Type.Put, value); tracker.add(delete); put.setSequenceId(1001); put.setTimestamp(20000); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(put)); put.setSequenceId(999); put.setTimestamp(19998); assertEquals(DeleteResult.COLUMN_DELETED, tracker.isDeleted(put)); put = new KeyValue(row, family, col2, 20000, KeyValue.Type.Put, value); put.setSequenceId(998); put.setTimestamp(19999); assertEquals(DeleteResult.COLUMN_DELETED, tracker.isDeleted(put)); put.setSequenceId(999); put.setTimestamp(19998); assertEquals(DeleteResult.COLUMN_DELETED, tracker.isDeleted(put)); }
put.setSequenceId(1001); put.setTimestamp(20000); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(put)); put.setSequenceId(999); put.setTimestamp(20000); assertEquals(DeleteResult.VERSION_DELETED, tracker.isDeleted(put)); put.setSequenceId(1001); put.setTimestamp(20000); assertEquals(DeleteResult.VERSION_DELETED, tracker.isDeleted(put)); put.setSequenceId(999); put.setTimestamp(20000); assertEquals(DeleteResult.VERSION_DELETED, tracker.isDeleted(put)); put.setSequenceId(1002); put.setTimestamp(19999); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(put)); put.setSequenceId(998); put.setTimestamp(19999); assertEquals(DeleteResult.VERSION_MASKED, tracker.isDeleted(put));
@Test public void testVersionsDelete() { NewVersionBehaviorTracker tracker = new NewVersionBehaviorTracker(null, comparator, 1, 3, 3, 10000); KeyValue put = new KeyValue(row, family, col1, 20000, KeyValue.Type.Put, value); KeyValue delete = new KeyValue(row, family, col1, 20000, KeyValue.Type.DeleteColumn, value); delete.setSequenceId(1000); delete.setTimestamp(20000); tracker.add(delete); put.setSequenceId(1001); put.setTimestamp(19999); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(put)); put.setSequenceId(999); put.setTimestamp(19998); assertEquals(DeleteResult.COLUMN_DELETED, tracker.isDeleted(put)); delete = new KeyValue(row, family, col2, 20000, KeyValue.Type.DeleteColumn, value); delete.setSequenceId(1002); delete.setTimestamp(20000); tracker.add(delete); put = new KeyValue(row, family, col2, 20000, KeyValue.Type.Put, value); put.setSequenceId(1001); put.setTimestamp(19999); assertEquals(DeleteResult.COLUMN_DELETED, tracker.isDeleted(put)); put.setSequenceId(999); put.setTimestamp(19998); assertEquals(DeleteResult.COLUMN_DELETED, tracker.isDeleted(put)); }
keyValue.setTimestamp(20000); keyValue.setSequenceId(1000); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.INCLUDE_AND_SEEK_NEXT_COL, tracker.checkVersions(keyValue, keyValue.getTimestamp(), keyValue.getTypeByte(), false)); keyValue.setTimestamp(19999); keyValue.setSequenceId(999); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); assertEquals( MatchCode.SEEK_NEXT_COL, keyValue.setTimestamp(19999); keyValue.setSequenceId(998); assertEquals(DeleteResult.VERSION_MASKED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.SEEK_NEXT_COL, tracker.checkVersions(keyValue, keyValue.getTimestamp(), keyValue.getTypeByte(), false)); keyValue.setTimestamp(19998); keyValue.setSequenceId(997); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.SEEK_NEXT_COL, tracker.checkVersions(keyValue, keyValue.getTimestamp(), keyValue.getTypeByte(), false)); keyValue.setTimestamp(19997); keyValue.setSequenceId(996); assertEquals(DeleteResult.VERSION_MASKED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.SEEK_NEXT_COL, tracker.checkVersions(keyValue, keyValue.getTimestamp(), keyValue.getTypeByte(), false)); keyValue.setTimestamp(20000); keyValue.setSequenceId(1000);
keyValue.setTimestamp(20000); keyValue.setSequenceId(1000); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); keyValue.setTimestamp(19999); keyValue.setSequenceId(999); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); keyValue.setTimestamp(19999); keyValue.setSequenceId(998); assertEquals(DeleteResult.VERSION_MASKED, tracker.isDeleted(keyValue)); keyValue.setTimestamp(19998); keyValue.setSequenceId(997); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); keyValue.setTimestamp(19997); keyValue.setSequenceId(996); assertEquals(DeleteResult.VERSION_MASKED, tracker.isDeleted(keyValue)); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); keyValue.setTimestamp(19999); keyValue.setSequenceId(1002); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); keyValue.setTimestamp(19999); keyValue.setSequenceId(1001); assertEquals(DeleteResult.VERSION_MASKED, tracker.isDeleted(keyValue)); keyValue.setTimestamp(19998); keyValue.setSequenceId(1003); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); keyValue.setTimestamp(19997); keyValue.setSequenceId(1004); assertEquals(DeleteResult.VERSION_MASKED, tracker.isDeleted(keyValue));
@Test public void testColumns() throws IOException { TreeSet<byte[]> trackedColumns = new TreeSet<byte[]>(Bytes.BYTES_COMPARATOR); trackedColumns.add(col1); trackedColumns.add(col3); NewVersionBehaviorTracker tracker = new NewVersionBehaviorTracker(trackedColumns, comparator, 1, 3, 3, 10000); KeyValue keyValue = new KeyValue(row, family, col0, 20000, KeyValue.Type.Put, value); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.SEEK_NEXT_COL, tracker.checkColumn(keyValue, keyValue.getTypeByte())); keyValue = new KeyValue(row, family, col1, 20000, KeyValue.Type.Put, value); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.INCLUDE, tracker.checkColumn(keyValue, keyValue.getTypeByte())); keyValue = new KeyValue(row, family, col2, 20000, KeyValue.Type.Put, value); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.SEEK_NEXT_COL, tracker.checkColumn(keyValue, keyValue.getTypeByte())); keyValue = new KeyValue(row, family, col3, 20000, KeyValue.Type.Put, value); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.INCLUDE, tracker.checkColumn(keyValue, keyValue.getTypeByte())); keyValue = new KeyValue(row, family, col4, 20000, KeyValue.Type.Put, value); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.SEEK_NEXT_ROW, tracker.checkColumn(keyValue, keyValue.getTypeByte())); }
@Test public void testFamilyVersionDelete() { NewVersionBehaviorTracker tracker = new NewVersionBehaviorTracker(null, comparator, 1, 3, 3, 10000); KeyValue delete = new KeyValue(row, family, null, 20000, KeyValue.Type.DeleteFamilyVersion, value); delete.setSequenceId(1000); delete.setTimestamp(20000); tracker.add(delete); KeyValue put = new KeyValue(row, family, col1, 20000, KeyValue.Type.Put, value); put.setSequenceId(1001); put.setTimestamp(20000); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(put)); put.setSequenceId(999); put.setTimestamp(20000); assertEquals(DeleteResult.VERSION_DELETED, tracker.isDeleted(put)); put = new KeyValue(row, family, col2, 20000, KeyValue.Type.Put, value); put.setSequenceId(1001); put.setTimestamp(20000); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(put)); put.setSequenceId(999); put.setTimestamp(20000); assertEquals(DeleteResult.VERSION_DELETED, tracker.isDeleted(put)); put.setSequenceId(1002); put.setTimestamp(19999); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(put)); put.setSequenceId(998); put.setTimestamp(19999); assertEquals(DeleteResult.VERSION_MASKED, tracker.isDeleted(put)); }
@Test public void testFamilyVersionsDelete() { NewVersionBehaviorTracker tracker = new NewVersionBehaviorTracker(null, comparator, 1, 3, 3, 10000); KeyValue delete = new KeyValue(row, family, null, 20000, KeyValue.Type.DeleteFamily, value); delete.setSequenceId(1000); delete.setTimestamp(20000); KeyValue put = new KeyValue(row, family, col1, 20000, KeyValue.Type.Put, value); tracker.add(delete); put.setSequenceId(1001); put.setTimestamp(20000); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(put)); put.setSequenceId(999); put.setTimestamp(19998); assertEquals(DeleteResult.COLUMN_DELETED, tracker.isDeleted(put)); put = new KeyValue(row, family, col2, 20000, KeyValue.Type.Put, value); put.setSequenceId(998); put.setTimestamp(19999); assertEquals(DeleteResult.COLUMN_DELETED, tracker.isDeleted(put)); put.setSequenceId(999); put.setTimestamp(19998); assertEquals(DeleteResult.COLUMN_DELETED, tracker.isDeleted(put)); }
put.setSequenceId(1001); put.setTimestamp(20000); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(put)); put.setSequenceId(999); put.setTimestamp(20000); assertEquals(DeleteResult.VERSION_DELETED, tracker.isDeleted(put)); put.setSequenceId(1001); put.setTimestamp(20000); assertEquals(DeleteResult.VERSION_DELETED, tracker.isDeleted(put)); put.setSequenceId(999); put.setTimestamp(20000); assertEquals(DeleteResult.VERSION_DELETED, tracker.isDeleted(put)); put.setSequenceId(1002); put.setTimestamp(19999); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(put)); put.setSequenceId(998); put.setTimestamp(19999); assertEquals(DeleteResult.VERSION_MASKED, tracker.isDeleted(put));
@Test public void testVersionsDelete() { NewVersionBehaviorTracker tracker = new NewVersionBehaviorTracker(null, comparator, 1, 3, 3, 10000); KeyValue put = new KeyValue(row, family, col1, 20000, KeyValue.Type.Put, value); KeyValue delete = new KeyValue(row, family, col1, 20000, KeyValue.Type.DeleteColumn, value); delete.setSequenceId(1000); delete.setTimestamp(20000); tracker.add(delete); put.setSequenceId(1001); put.setTimestamp(19999); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(put)); put.setSequenceId(999); put.setTimestamp(19998); assertEquals(DeleteResult.COLUMN_DELETED, tracker.isDeleted(put)); delete = new KeyValue(row, family, col2, 20000, KeyValue.Type.DeleteColumn, value); delete.setSequenceId(1002); delete.setTimestamp(20000); tracker.add(delete); put = new KeyValue(row, family, col2, 20000, KeyValue.Type.Put, value); put.setSequenceId(1001); put.setTimestamp(19999); assertEquals(DeleteResult.COLUMN_DELETED, tracker.isDeleted(put)); put.setSequenceId(999); put.setTimestamp(19998); assertEquals(DeleteResult.COLUMN_DELETED, tracker.isDeleted(put)); }
keyValue.setTimestamp(20000); keyValue.setSequenceId(1000); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.INCLUDE_AND_SEEK_NEXT_COL, tracker.checkVersions(keyValue, keyValue.getTimestamp(), keyValue.getTypeByte(), false)); keyValue.setTimestamp(19999); keyValue.setSequenceId(999); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); assertEquals( MatchCode.SEEK_NEXT_COL, keyValue.setTimestamp(19999); keyValue.setSequenceId(998); assertEquals(DeleteResult.VERSION_MASKED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.SEEK_NEXT_COL, tracker.checkVersions(keyValue, keyValue.getTimestamp(), keyValue.getTypeByte(), false)); keyValue.setTimestamp(19998); keyValue.setSequenceId(997); assertEquals(DeleteResult.NOT_DELETED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.SEEK_NEXT_COL, tracker.checkVersions(keyValue, keyValue.getTimestamp(), keyValue.getTypeByte(), false)); keyValue.setTimestamp(19997); keyValue.setSequenceId(996); assertEquals(DeleteResult.VERSION_MASKED, tracker.isDeleted(keyValue)); assertEquals(MatchCode.SEEK_NEXT_COL, tracker.checkVersions(keyValue, keyValue.getTimestamp(), keyValue.getTypeByte(), false)); keyValue.setTimestamp(20000); keyValue.setSequenceId(1000);