@Test public void testDeleteColumnAtTimestamp() { byte[] rowKey = randomHelper.randomData("rk1-"); byte[] family = randomHelper.randomData("family1-"); byte[] qualifier = randomHelper.randomData("qualifier"); long hbaseTimestamp = 1000L; long bigtableStartTimestamp = TimeUnit.MILLISECONDS.toMicros(hbaseTimestamp); long bigtableEndTimestamp = TimeUnit.MILLISECONDS.toMicros(hbaseTimestamp + 1); Delete delete = new Delete(rowKey); delete.addColumn(family, qualifier, hbaseTimestamp); MutateRowRequest request = adapt(delete); Assert.assertArrayEquals(rowKey, request.getRowKey().toByteArray()); Assert.assertEquals(1, request.getMutationsCount()); MutationCase mutationCase = request.getMutations(0).getMutationCase(); Assert.assertEquals(MutationCase.DELETE_FROM_COLUMN, mutationCase); Mutation.DeleteFromColumn deleteFromColumn = request.getMutations(0).getDeleteFromColumn(); Assert.assertArrayEquals(family, deleteFromColumn.getFamilyNameBytes().toByteArray()); Assert.assertArrayEquals(qualifier, deleteFromColumn.getColumnQualifier().toByteArray()); Assert.assertTrue(request.getMutations(0).getDeleteFromColumn().hasTimeRange()); TimestampRange timeStampRange = deleteFromColumn.getTimeRange(); Assert.assertEquals(bigtableStartTimestamp, timeStampRange.getStartTimestampMicros()); Assert.assertEquals(bigtableEndTimestamp, timeStampRange.getEndTimestampMicros()); }
@Override public void adapt( Delete operation, com.google.cloud.bigtable.data.v2.models.MutationApi<?> mutation) { if (operation.getFamilyCellMap().isEmpty()) { throwIfUnsupportedDeleteRow(operation); mutation.deleteRow(); } else { for (Map.Entry<byte[], List<Cell>> entry : operation.getFamilyCellMap().entrySet()) { ByteString familyByteString = ByteString.copyFrom(entry.getKey()); for (Cell cell : entry.getValue()) { if (isColumnDelete(cell) || isPointDelete(cell)) { if (isPointDelete(cell)) { throwIfUnsupportedPointDelete(cell); } addDeleteFromColumnMods(familyByteString, cell, mutation); } else if (isFamilyDelete(cell)) { throwIfUnsupportedDeleteFamily(cell); mutation.deleteFamily(familyByteString.toStringUtf8()); } else if (isFamilyVersionDelete(cell)) { throwOnUnsupportedDeleteFamilyVersion(cell); } else { throwOnUnsupportedCellType(cell); } } } } }
DeleteAdapter extends MutationAdapter<Delete> { @Override public void adapt( Delete operation, com.google.cloud.bigtable.data.v2.models.MutationApi<?> mutation) { if (operation.getFamilyCellMap().isEmpty()) { throwIfUnsupportedDeleteRow(operation); mutation.deleteRow(); } else { for (Map.Entry<byte[], List<Cell>> entry : operation.getFamilyCellMap().entrySet()) { ByteString familyByteString = ByteString.copyFrom(entry.getKey()); for (Cell cell : entry.getValue()) { if (isColumnDelete(cell) || isPointDelete(cell)) { if (isPointDelete(cell)) { throwIfUnsupportedPointDelete(cell); } addDeleteFromColumnMods(familyByteString, cell, mutation); } else if (isFamilyDelete(cell)) { throwIfUnsupportedDeleteFamily(cell); mutation.deleteFamily(familyByteString.toStringUtf8()); } else if (isFamilyVersionDelete(cell)) { throwOnUnsupportedDeleteFamilyVersion(cell); } else { throwOnUnsupportedCellType(cell); } } } } } }
DeleteAdapter extends MutationAdapter<Delete> { @Override public void adapt( Delete operation, com.google.cloud.bigtable.data.v2.models.MutationApi<?> mutation) { if (operation.getFamilyCellMap().isEmpty()) { throwIfUnsupportedDeleteRow(operation); mutation.deleteRow(); } else { for (Map.Entry<byte[], List<Cell>> entry : operation.getFamilyCellMap().entrySet()) { ByteString familyByteString = ByteString.copyFrom(entry.getKey()); for (Cell cell : entry.getValue()) { if (isColumnDelete(cell) || isPointDelete(cell)) { if (isPointDelete(cell)) { throwIfUnsupportedPointDelete(cell); } addDeleteFromColumnMods(familyByteString, cell, mutation); } else if (isFamilyDelete(cell)) { throwIfUnsupportedDeleteFamily(cell); mutation.deleteFamily(familyByteString.toStringUtf8()); } else if (isFamilyVersionDelete(cell)) { throwOnUnsupportedDeleteFamilyVersion(cell); } else { throwOnUnsupportedCellType(cell); } } } } }  }
DeleteAdapter extends MutationAdapter<Delete> { @Override public void adapt( Delete operation, com.google.cloud.bigtable.data.v2.models.MutationApi<?> mutation) { if (operation.getFamilyCellMap().isEmpty()) { throwIfUnsupportedDeleteRow(operation); mutation.deleteRow(); } else { for (Map.Entry<byte[], List<Cell>> entry : operation.getFamilyCellMap().entrySet()) { ByteString familyByteString = ByteString.copyFrom(entry.getKey()); for (Cell cell : entry.getValue()) { if (isColumnDelete(cell) || isPointDelete(cell)) { if (isPointDelete(cell)) { throwIfUnsupportedPointDelete(cell); } addDeleteFromColumnMods(familyByteString, cell, mutation); } else if (isFamilyDelete(cell)) { throwIfUnsupportedDeleteFamily(cell); mutation.deleteFamily(familyByteString.toStringUtf8()); } else if (isFamilyVersionDelete(cell)) { throwOnUnsupportedDeleteFamilyVersion(cell); } else { throwOnUnsupportedCellType(cell); } } } } }  @Override void adapt(
      Delete operation, com.google.cloud.bigtable.data.v2.models.MutationApi<?> mutation); }
DeleteAdapter extends MutationAdapter<Delete> { @Override public void adapt( Delete operation, com.google.cloud.bigtable.data.v2.models.MutationApi<?> mutation) { if (operation.getFamilyCellMap().isEmpty()) { throwIfUnsupportedDeleteRow(operation); mutation.deleteRow(); } else { for (Map.Entry<byte[], List<Cell>> entry : operation.getFamilyCellMap().entrySet()) { ByteString familyByteString = ByteString.copyFrom(entry.getKey()); for (Cell cell : entry.getValue()) { if (isColumnDelete(cell) || isPointDelete(cell)) { if (isPointDelete(cell)) { throwIfUnsupportedPointDelete(cell); } addDeleteFromColumnMods(familyByteString, cell, mutation); } else if (isFamilyDelete(cell)) { throwIfUnsupportedDeleteFamily(cell); mutation.deleteFamily(familyByteString.toStringUtf8()); } else if (isFamilyVersionDelete(cell)) { throwOnUnsupportedDeleteFamilyVersion(cell); } else { throwOnUnsupportedCellType(cell); } } } } }  @Override void adapt(
      Delete operation, com.google.cloud.bigtable.data.v2.models.MutationApi<?> mutation);  }