deleteTracker = new NewVersionBehaviorTracker(columns, scanInfo.getComparator(), scanInfo.getMinVersions(), scanInfo.getMaxVersions(), resultMaxVersion, oldestUnexpiredTS);
@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 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)); }
@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)); }
@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 testVersionDelete() { 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.Delete, value);
@Test public void testMaxVersionMask() { NewVersionBehaviorTracker tracker = new NewVersionBehaviorTracker(null, comparator, 1, 3, 3, 10000);
@Test public void testMinVersionsAndTTL() throws IOException { NewVersionBehaviorTracker tracker = new NewVersionBehaviorTracker(null, comparator, 1, 3, 3, 30000);
@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 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)); }
@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)); }
@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 testVersionDelete() { 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.Delete, value);
@Test public void testMaxVersionMask() { NewVersionBehaviorTracker tracker = new NewVersionBehaviorTracker(null, comparator, 1, 3, 3, 10000);
@Test public void testMinVersionsAndTTL() throws IOException { NewVersionBehaviorTracker tracker = new NewVersionBehaviorTracker(null, comparator, 1, 3, 3, 30000);