This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch branch-2.6
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2.6 by this push:
     new cddc947eddb HBASE-29528 Support cellVisility in Thrift interface
cddc947eddb is described below

commit cddc947eddb2fab5830eb3926964656040fd8c5c
Author: SVJH <[email protected]>
AuthorDate: Mon Dec 9 14:25:37 2019 +0100

    HBASE-29528 Support cellVisility in Thrift interface
    
    Close #7229
    
    Co-authored-by: Duo Zhang <[email protected]>
    Signed-off-by: Duo Zhang <[email protected]>
    (cherry picked from commit 9a2989cbab5f86cb5a2379b6b60d5f5bfb227653)
---
 .../hbase/thrift/generated/AlreadyExists.java      |   2 +-
 .../hbase/thrift/generated/BatchMutation.java      |   2 +-
 .../hbase/thrift/generated/ColumnDescriptor.java   |   2 +-
 .../hadoop/hbase/thrift/generated/Hbase.java       |   2 +-
 .../hadoop/hbase/thrift/generated/IOError.java     |   2 +-
 .../hbase/thrift/generated/IllegalArgument.java    |   2 +-
 .../hadoop/hbase/thrift/generated/Mutation.java    |   2 +-
 .../hadoop/hbase/thrift/generated/TAppend.java     |   2 +-
 .../hadoop/hbase/thrift/generated/TCell.java       |   2 +-
 .../hadoop/hbase/thrift/generated/TColumn.java     |   2 +-
 .../hadoop/hbase/thrift/generated/TIncrement.java  |   2 +-
 .../hadoop/hbase/thrift/generated/TRegionInfo.java |   2 +-
 .../hadoop/hbase/thrift/generated/TRowResult.java  |   2 +-
 .../hadoop/hbase/thrift/generated/TScan.java       |   2 +-
 .../hbase/thrift/generated/TThriftServerType.java  |   2 +-
 .../hadoop/hbase/thrift2/ThriftUtilities.java      |   4 +
 .../hadoop/hbase/thrift2/generated/TAppend.java    |   2 +-
 .../hbase/thrift2/generated/TAuthorization.java    |   2 +-
 .../hbase/thrift2/generated/TBloomFilterType.java  |   2 +-
 .../hbase/thrift2/generated/TCellVisibility.java   |   2 +-
 .../hadoop/hbase/thrift2/generated/TColumn.java    |   2 +-
 .../thrift2/generated/TColumnFamilyDescriptor.java |   2 +-
 .../hbase/thrift2/generated/TColumnIncrement.java  |   2 +-
 .../hbase/thrift2/generated/TColumnValue.java      |   2 +-
 .../hadoop/hbase/thrift2/generated/TCompareOp.java |   2 +-
 .../thrift2/generated/TCompressionAlgorithm.java   |   2 +-
 .../hbase/thrift2/generated/TConsistency.java      |   2 +-
 .../thrift2/generated/TDataBlockEncoding.java      |   2 +-
 .../hadoop/hbase/thrift2/generated/TDelete.java    | 122 ++++++++++++++++++++-
 .../hbase/thrift2/generated/TDeleteType.java       |   2 +-
 .../hbase/thrift2/generated/TDurability.java       |   2 +-
 .../hbase/thrift2/generated/TFilterByOperator.java |   2 +-
 .../hadoop/hbase/thrift2/generated/TGet.java       |   2 +-
 .../hbase/thrift2/generated/THBaseService.java     |   2 +-
 .../hbase/thrift2/generated/THRegionInfo.java      |   2 +-
 .../hbase/thrift2/generated/THRegionLocation.java  |   2 +-
 .../hadoop/hbase/thrift2/generated/TIOError.java   |   2 +-
 .../hbase/thrift2/generated/TIllegalArgument.java  |   2 +-
 .../hadoop/hbase/thrift2/generated/TIncrement.java |   2 +-
 .../hbase/thrift2/generated/TKeepDeletedCells.java |   2 +-
 .../hbase/thrift2/generated/TLogQueryFilter.java   |   2 +-
 .../hadoop/hbase/thrift2/generated/TLogType.java   |   2 +-
 .../hadoop/hbase/thrift2/generated/TMutation.java  |   2 +-
 .../thrift2/generated/TNamespaceDescriptor.java    |   2 +-
 .../hbase/thrift2/generated/TOnlineLogRecord.java  |   2 +-
 .../hadoop/hbase/thrift2/generated/TPut.java       |   2 +-
 .../hadoop/hbase/thrift2/generated/TReadType.java  |   2 +-
 .../hadoop/hbase/thrift2/generated/TResult.java    |   2 +-
 .../hbase/thrift2/generated/TRowMutations.java     |   2 +-
 .../hadoop/hbase/thrift2/generated/TScan.java      |   2 +-
 .../hbase/thrift2/generated/TServerName.java       |   2 +-
 .../hbase/thrift2/generated/TTableDescriptor.java  |   2 +-
 .../hadoop/hbase/thrift2/generated/TTableName.java |   2 +-
 .../hbase/thrift2/generated/TThriftServerType.java |   2 +-
 .../hadoop/hbase/thrift2/generated/TTimeRange.java |   2 +-
 .../org/apache/hadoop/hbase/thrift2/hbase.thrift   |   3 +-
 .../TestThriftHBaseServiceHandlerWithLabels.java   |  89 +++++++++++++++
 57 files changed, 265 insertions(+), 59 deletions(-)

diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/AlreadyExists.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/AlreadyExists.java
index 74e7c8143aa..0feba517601 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/AlreadyExists.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/AlreadyExists.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift.generated;
  * An AlreadyExists exceptions signals that a table with the specified
  * name already exists
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class AlreadyExists extends org.apache.thrift.TException implements 
org.apache.thrift.TBase<AlreadyExists, AlreadyExists._Fields>, 
java.io.Serializable, Cloneable, Comparable<AlreadyExists> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("AlreadyExists");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/BatchMutation.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/BatchMutation.java
index 6dfab3266f5..6e82601fec8 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/BatchMutation.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/BatchMutation.java
@@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift.generated;
 /**
  * A BatchMutation object is used to apply a number of Mutations to a single 
row.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class BatchMutation implements org.apache.thrift.TBase<BatchMutation, 
BatchMutation._Fields>, java.io.Serializable, Cloneable, 
Comparable<BatchMutation> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("BatchMutation");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/ColumnDescriptor.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/ColumnDescriptor.java
index cf52018bdd9..e49880f4ceb 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/ColumnDescriptor.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/ColumnDescriptor.java
@@ -12,7 +12,7 @@ package org.apache.hadoop.hbase.thrift.generated;
  * such as the number of versions, compression settings, etc. It is
  * used as input when creating a table or adding a column.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class ColumnDescriptor implements 
org.apache.thrift.TBase<ColumnDescriptor, ColumnDescriptor._Fields>, 
java.io.Serializable, Cloneable, Comparable<ColumnDescriptor> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("ColumnDescriptor");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/Hbase.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/Hbase.java
index 4ba89955c3c..279ff8afc99 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/Hbase.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/Hbase.java
@@ -7,7 +7,7 @@
 package org.apache.hadoop.hbase.thrift.generated;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class Hbase {
 
   public interface Iface {
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/IOError.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/IOError.java
index d9e913ca022..67691335f04 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/IOError.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/IOError.java
@@ -12,7 +12,7 @@ package org.apache.hadoop.hbase.thrift.generated;
  * to the Hbase master or an Hbase region server.  Also used to return
  * more general Hbase error conditions.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class IOError extends org.apache.thrift.TException implements 
org.apache.thrift.TBase<IOError, IOError._Fields>, java.io.Serializable, 
Cloneable, Comparable<IOError> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("IOError");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/IllegalArgument.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/IllegalArgument.java
index e0efed832bb..fbb6f2a0524 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/IllegalArgument.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/IllegalArgument.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift.generated;
  * An IllegalArgument exception indicates an illegal or invalid
  * argument was passed into a procedure.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class IllegalArgument extends org.apache.thrift.TException implements 
org.apache.thrift.TBase<IllegalArgument, IllegalArgument._Fields>, 
java.io.Serializable, Cloneable, Comparable<IllegalArgument> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("IllegalArgument");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/Mutation.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/Mutation.java
index c1c38b06540..138b8c2171e 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/Mutation.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/Mutation.java
@@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift.generated;
 /**
  * A Mutation object is used to either update or delete a column-value.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class Mutation implements org.apache.thrift.TBase<Mutation, 
Mutation._Fields>, java.io.Serializable, Cloneable, Comparable<Mutation> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("Mutation");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TAppend.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TAppend.java
index 8fff5adaa88..67874e6652f 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TAppend.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TAppend.java
@@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift.generated;
 /**
  * An Append object is used to specify the parameters for performing the 
append operation.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TAppend implements org.apache.thrift.TBase<TAppend, 
TAppend._Fields>, java.io.Serializable, Cloneable, Comparable<TAppend> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TAppend");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TCell.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TCell.java
index c22cd2691d6..fab301ea37d 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TCell.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TCell.java
@@ -13,7 +13,7 @@ package org.apache.hadoop.hbase.thrift.generated;
  * the timestamp of a cell to a first-class value, making it easy to take
  * note of temporal data. Cell is used all the way from HStore up to HTable.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TCell implements org.apache.thrift.TBase<TCell, TCell._Fields>, 
java.io.Serializable, Cloneable, Comparable<TCell> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TCell");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TColumn.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TColumn.java
index 8932017d16c..3741a337b5e 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TColumn.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TColumn.java
@@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift.generated;
 /**
  * Holds column name and the cell.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TColumn implements org.apache.thrift.TBase<TColumn, 
TColumn._Fields>, java.io.Serializable, Cloneable, Comparable<TColumn> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TColumn");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TIncrement.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TIncrement.java
index a5e75942f93..0d8fb2d0db0 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TIncrement.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TIncrement.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift.generated;
  * For increments that are not incrementColumnValue
  * equivalents.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TIncrement implements org.apache.thrift.TBase<TIncrement, 
TIncrement._Fields>, java.io.Serializable, Cloneable, Comparable<TIncrement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TIncrement");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TRegionInfo.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TRegionInfo.java
index 2fcd55435f6..7092af2f368 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TRegionInfo.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TRegionInfo.java
@@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift.generated;
 /**
  * A TRegionInfo contains information about an HTable region.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TRegionInfo implements org.apache.thrift.TBase<TRegionInfo, 
TRegionInfo._Fields>, java.io.Serializable, Cloneable, Comparable<TRegionInfo> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TRegionInfo");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TRowResult.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TRowResult.java
index a5729c68144..f17cc4acb73 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TRowResult.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TRowResult.java
@@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift.generated;
 /**
  * Holds row name and then a map of columns to cells.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TRowResult implements org.apache.thrift.TBase<TRowResult, 
TRowResult._Fields>, java.io.Serializable, Cloneable, Comparable<TRowResult> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TRowResult");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TScan.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TScan.java
index 993e85762e8..4293e9ce47b 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TScan.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TScan.java
@@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift.generated;
 /**
  * A Scan object is used to specify scanner parameters when opening a scanner.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TScan implements org.apache.thrift.TBase<TScan, TScan._Fields>, 
java.io.Serializable, Cloneable, Comparable<TScan> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TScan");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TThriftServerType.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TThriftServerType.java
index dbe670ab39f..0c7d3bcd35d 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TThriftServerType.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TThriftServerType.java
@@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift.generated;
 /**
  * Specify type of thrift server: thrift and thrift2
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public enum TThriftServerType implements org.apache.thrift.TEnum {
   ONE(1),
   TWO(2);
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/ThriftUtilities.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/ThriftUtilities.java
index b3fbaff828a..4694d82e87a 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/ThriftUtilities.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/ThriftUtilities.java
@@ -384,6 +384,10 @@ public class ThriftUtilities {
       out.setDurability(durabilityFromThrift(in.getDurability()));
     }
 
+    if (in.getCellVisibility() != null) {
+      out.setCellVisibility(new 
CellVisibility(in.getCellVisibility().getExpression()));
+    }
+
     return out;
   }
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TAppend.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TAppend.java
index 67085a70eb5..940be40dbed 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TAppend.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TAppend.java
@@ -7,7 +7,7 @@
 package org.apache.hadoop.hbase.thrift2.generated;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TAppend implements org.apache.thrift.TBase<TAppend, 
TAppend._Fields>, java.io.Serializable, Cloneable, Comparable<TAppend> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TAppend");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TAuthorization.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TAuthorization.java
index 3060de04557..d2ef4594268 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TAuthorization.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TAuthorization.java
@@ -7,7 +7,7 @@
 package org.apache.hadoop.hbase.thrift2.generated;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TAuthorization implements org.apache.thrift.TBase<TAuthorization, 
TAuthorization._Fields>, java.io.Serializable, Cloneable, 
Comparable<TAuthorization> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TAuthorization");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TBloomFilterType.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TBloomFilterType.java
index e999712619b..1ffed27cfd7 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TBloomFilterType.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TBloomFilterType.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * Thrift wrapper around
  * org.apache.hadoop.hbase.regionserver.BloomType
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public enum TBloomFilterType implements org.apache.thrift.TEnum {
   /**
    * Bloomfilters disabled
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TCellVisibility.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TCellVisibility.java
index 7d8f7d27e6b..0451ff8ddba 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TCellVisibility.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TCellVisibility.java
@@ -7,7 +7,7 @@
 package org.apache.hadoop.hbase.thrift2.generated;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TCellVisibility implements 
org.apache.thrift.TBase<TCellVisibility, TCellVisibility._Fields>, 
java.io.Serializable, Cloneable, Comparable<TCellVisibility> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TCellVisibility");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TColumn.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TColumn.java
index f7706731e61..a85d5b2b92a 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TColumn.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TColumn.java
@@ -12,7 +12,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * in a HBase table by column family and optionally
  * a column qualifier and timestamp
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TColumn implements org.apache.thrift.TBase<TColumn, 
TColumn._Fields>, java.io.Serializable, Cloneable, Comparable<TColumn> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TColumn");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TColumnFamilyDescriptor.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TColumnFamilyDescriptor.java
index 5d557d164d1..f7760d11a3c 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TColumnFamilyDescriptor.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TColumnFamilyDescriptor.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * Thrift wrapper around
  * org.apache.hadoop.hbase.client.ColumnFamilyDescriptor
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TColumnFamilyDescriptor implements 
org.apache.thrift.TBase<TColumnFamilyDescriptor, 
TColumnFamilyDescriptor._Fields>, java.io.Serializable, Cloneable, 
Comparable<TColumnFamilyDescriptor> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TColumnFamilyDescriptor");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TColumnIncrement.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TColumnIncrement.java
index 1321962f799..efcc839ffe3 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TColumnIncrement.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TColumnIncrement.java
@@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
 /**
  * Represents a single cell and the amount to increment it by
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TColumnIncrement implements 
org.apache.thrift.TBase<TColumnIncrement, TColumnIncrement._Fields>, 
java.io.Serializable, Cloneable, Comparable<TColumnIncrement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TColumnIncrement");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TColumnValue.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TColumnValue.java
index 945cd19bf76..cf06c4302df 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TColumnValue.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TColumnValue.java
@@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
 /**
  * Represents a single cell and its value.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TColumnValue implements org.apache.thrift.TBase<TColumnValue, 
TColumnValue._Fields>, java.io.Serializable, Cloneable, 
Comparable<TColumnValue> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TColumnValue");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TCompareOp.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TCompareOp.java
index 2e3ca1939ee..5d45980d87b 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TCompareOp.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TCompareOp.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * Thrift wrapper around
  * org.apache.hadoop.hbase.filter.CompareFilter$CompareOp.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public enum TCompareOp implements org.apache.thrift.TEnum {
   LESS(0),
   LESS_OR_EQUAL(1),
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TCompressionAlgorithm.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TCompressionAlgorithm.java
index d68bdb87037..2ddd74cb789 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TCompressionAlgorithm.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TCompressionAlgorithm.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * Thrift wrapper around
  * org.apache.hadoop.hbase.io.compress.Algorithm
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public enum TCompressionAlgorithm implements org.apache.thrift.TEnum {
   LZO(0),
   GZ(1),
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TConsistency.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TConsistency.java
index 8794ce8821a..49b17381728 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TConsistency.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TConsistency.java
@@ -12,7 +12,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  *  - STRONG means reads only from primary region
  *  - TIMELINE means reads might return values from secondary region replicas
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public enum TConsistency implements org.apache.thrift.TEnum {
   STRONG(1),
   TIMELINE(2);
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDataBlockEncoding.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDataBlockEncoding.java
index d8a325e78a5..2b9f5f16fb6 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDataBlockEncoding.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDataBlockEncoding.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * Thrift wrapper around
  * org.apache.hadoop.hbase.io.encoding.DataBlockEncoding
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public enum TDataBlockEncoding implements org.apache.thrift.TEnum {
   /**
    * Disable data block encoding.
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDelete.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDelete.java
index a7f682f9ee2..92fa3c7ae69 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDelete.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDelete.java
@@ -33,7 +33,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * by changing the durability. If you don't provide durability, it defaults to
  * column family's default setting for durability.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TDelete implements org.apache.thrift.TBase<TDelete, 
TDelete._Fields>, java.io.Serializable, Cloneable, Comparable<TDelete> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TDelete");
 
@@ -43,6 +43,7 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
   private static final org.apache.thrift.protocol.TField 
DELETE_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("deleteType", 
org.apache.thrift.protocol.TType.I32, (short)4);
   private static final org.apache.thrift.protocol.TField ATTRIBUTES_FIELD_DESC 
= new org.apache.thrift.protocol.TField("attributes", 
org.apache.thrift.protocol.TType.MAP, (short)6);
   private static final org.apache.thrift.protocol.TField DURABILITY_FIELD_DESC 
= new org.apache.thrift.protocol.TField("durability", 
org.apache.thrift.protocol.TType.I32, (short)7);
+  private static final org.apache.thrift.protocol.TField 
CELL_VISIBILITY_FIELD_DESC = new 
org.apache.thrift.protocol.TField("cellVisibility", 
org.apache.thrift.protocol.TType.STRUCT, (short)8);
 
   private static final org.apache.thrift.scheme.SchemeFactory 
STANDARD_SCHEME_FACTORY = new TDeleteStandardSchemeFactory();
   private static final org.apache.thrift.scheme.SchemeFactory 
TUPLE_SCHEME_FACTORY = new TDeleteTupleSchemeFactory();
@@ -61,6 +62,7 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
    * @see TDurability
    */
   public @org.apache.thrift.annotation.Nullable TDurability durability; // 
optional
+  public @org.apache.thrift.annotation.Nullable TCellVisibility 
cellVisibility; // optional
 
   /** The set of fields this struct contains, along with convenience methods 
for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -77,7 +79,8 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
      * 
      * @see TDurability
      */
-    DURABILITY((short)7, "durability");
+    DURABILITY((short)7, "durability"),
+    CELL_VISIBILITY((short)8, "cellVisibility");
 
     private static final java.util.Map<java.lang.String, _Fields> byName = new 
java.util.HashMap<java.lang.String, _Fields>();
 
@@ -105,6 +108,8 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
           return ATTRIBUTES;
         case 7: // DURABILITY
           return DURABILITY;
+        case 8: // CELL_VISIBILITY
+          return CELL_VISIBILITY;
         default:
           return null;
       }
@@ -148,7 +153,7 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
   // isset id assignments
   private static final int __TIMESTAMP_ISSET_ID = 0;
   private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = 
{_Fields.COLUMNS,_Fields.TIMESTAMP,_Fields.DELETE_TYPE,_Fields.ATTRIBUTES,_Fields.DURABILITY};
+  private static final _Fields optionals[] = 
{_Fields.COLUMNS,_Fields.TIMESTAMP,_Fields.DELETE_TYPE,_Fields.ATTRIBUTES,_Fields.DURABILITY,_Fields.CELL_VISIBILITY};
   public static final java.util.Map<_Fields, 
org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = 
new java.util.EnumMap<_Fields, 
org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -167,6 +172,8 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
             new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING
            , true))));
     tmpMap.put(_Fields.DURABILITY, new 
org.apache.thrift.meta_data.FieldMetaData("durability", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new 
org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, 
TDurability.class)));
+    tmpMap.put(_Fields.CELL_VISIBILITY, new 
org.apache.thrift.meta_data.FieldMetaData("cellVisibility", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new 
org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT,
 TCellVisibility.class)));
     metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
     
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TDelete.class, 
metaDataMap);
   }
@@ -209,6 +216,9 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
     if (other.isSetDurability()) {
       this.durability = other.durability;
     }
+    if (other.isSetCellVisibility()) {
+      this.cellVisibility = new TCellVisibility(other.cellVisibility);
+    }
   }
 
   public TDelete deepCopy() {
@@ -225,6 +235,7 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
 
     this.attributes = null;
     this.durability = null;
+    this.cellVisibility = null;
   }
 
   public byte[] getRow() {
@@ -427,6 +438,31 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
+  public TCellVisibility getCellVisibility() {
+    return this.cellVisibility;
+  }
+
+  public TDelete setCellVisibility(@org.apache.thrift.annotation.Nullable 
TCellVisibility cellVisibility) {
+    this.cellVisibility = cellVisibility;
+    return this;
+  }
+
+  public void unsetCellVisibility() {
+    this.cellVisibility = null;
+  }
+
+  /** Returns true if field cellVisibility is set (has been assigned a value) 
and false otherwise */
+  public boolean isSetCellVisibility() {
+    return this.cellVisibility != null;
+  }
+
+  public void setCellVisibilityIsSet(boolean value) {
+    if (!value) {
+      this.cellVisibility = null;
+    }
+  }
+
   public void setFieldValue(_Fields field, 
@org.apache.thrift.annotation.Nullable java.lang.Object value) {
     switch (field) {
     case ROW:
@@ -481,6 +517,14 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
       }
       break;
 
+    case CELL_VISIBILITY:
+      if (value == null) {
+        unsetCellVisibility();
+      } else {
+        setCellVisibility((TCellVisibility)value);
+      }
+      break;
+
     }
   }
 
@@ -505,6 +549,9 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
     case DURABILITY:
       return getDurability();
 
+    case CELL_VISIBILITY:
+      return getCellVisibility();
+
     }
     throw new java.lang.IllegalStateException();
   }
@@ -528,6 +575,8 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
       return isSetAttributes();
     case DURABILITY:
       return isSetDurability();
+    case CELL_VISIBILITY:
+      return isSetCellVisibility();
     }
     throw new java.lang.IllegalStateException();
   }
@@ -599,6 +648,15 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
         return false;
     }
 
+    boolean this_present_cellVisibility = true && this.isSetCellVisibility();
+    boolean that_present_cellVisibility = true && that.isSetCellVisibility();
+    if (this_present_cellVisibility || that_present_cellVisibility) {
+      if (!(this_present_cellVisibility && that_present_cellVisibility))
+        return false;
+      if (!this.cellVisibility.equals(that.cellVisibility))
+        return false;
+    }
+
     return true;
   }
 
@@ -630,6 +688,10 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
     if (isSetDurability())
       hashCode = hashCode * 8191 + durability.getValue();
 
+    hashCode = hashCode * 8191 + ((isSetCellVisibility()) ? 131071 : 524287);
+    if (isSetCellVisibility())
+      hashCode = hashCode * 8191 + cellVisibility.hashCode();
+
     return hashCode;
   }
 
@@ -701,6 +763,16 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
         return lastComparison;
       }
     }
+    lastComparison = java.lang.Boolean.compare(isSetCellVisibility(), 
other.isSetCellVisibility());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCellVisibility()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.cellVisibility, 
other.cellVisibility);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -775,6 +847,16 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
       }
       first = false;
     }
+    if (isSetCellVisibility()) {
+      if (!first) sb.append(", ");
+      sb.append("cellVisibility:");
+      if (this.cellVisibility == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.cellVisibility);
+      }
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -785,6 +867,9 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
       throw new org.apache.thrift.protocol.TProtocolException("Required field 
'row' was not present! Struct: " + toString());
     }
     // check for sub-struct validity
+    if (cellVisibility != null) {
+      cellVisibility.validate();
+    }
   }
 
   private void writeObject(java.io.ObjectOutputStream out) throws 
java.io.IOException {
@@ -894,6 +979,15 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
             }
             break;
+          case 8: // CELL_VISIBILITY
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.cellVisibility = new TCellVisibility();
+              struct.cellVisibility.read(iprot);
+              struct.setCellVisibilityIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
         }
@@ -962,6 +1056,13 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
           oprot.writeFieldEnd();
         }
       }
+      if (struct.cellVisibility != null) {
+        if (struct.isSetCellVisibility()) {
+          oprot.writeFieldBegin(CELL_VISIBILITY_FIELD_DESC);
+          struct.cellVisibility.write(oprot);
+          oprot.writeFieldEnd();
+        }
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -996,7 +1097,10 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
       if (struct.isSetDurability()) {
         optionals.set(4);
       }
-      oprot.writeBitSet(optionals, 5);
+      if (struct.isSetCellVisibility()) {
+        optionals.set(5);
+      }
+      oprot.writeBitSet(optionals, 6);
       if (struct.isSetColumns()) {
         {
           oprot.writeI32(struct.columns.size());
@@ -1025,6 +1129,9 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
       if (struct.isSetDurability()) {
         oprot.writeI32(struct.durability.getValue());
       }
+      if (struct.isSetCellVisibility()) {
+        struct.cellVisibility.write(oprot);
+      }
     }
 
     @Override
@@ -1032,7 +1139,7 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
       org.apache.thrift.protocol.TTupleProtocol iprot = 
(org.apache.thrift.protocol.TTupleProtocol) prot;
       struct.row = iprot.readBinary();
       struct.setRowIsSet(true);
-      java.util.BitSet incoming = iprot.readBitSet(5);
+      java.util.BitSet incoming = iprot.readBitSet(6);
       if (incoming.get(0)) {
         {
           org.apache.thrift.protocol.TList _list63 = 
iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
@@ -1074,6 +1181,11 @@ public class TDelete implements 
org.apache.thrift.TBase<TDelete, TDelete._Fields
         struct.durability = 
org.apache.hadoop.hbase.thrift2.generated.TDurability.findByValue(iprot.readI32());
         struct.setDurabilityIsSet(true);
       }
+      if (incoming.get(5)) {
+        struct.cellVisibility = new TCellVisibility();
+        struct.cellVisibility.read(iprot);
+        struct.setCellVisibilityIsSet(true);
+      }
     }
   }
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDeleteType.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDeleteType.java
index b25787a68b2..015436c6607 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDeleteType.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDeleteType.java
@@ -12,7 +12,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  *  - DELETE_COLUMN means exactly one version will be removed,
  *  - DELETE_COLUMNS means previous versions will also be removed.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public enum TDeleteType implements org.apache.thrift.TEnum {
   DELETE_COLUMN(0),
   DELETE_COLUMNS(1),
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDurability.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDurability.java
index d0d9ebcd353..97d2a8bc33b 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDurability.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TDurability.java
@@ -14,7 +14,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  *  - SYNC_WAL means write the Mutation to the WAL synchronously,
  *  - FSYNC_WAL means Write the Mutation to the WAL synchronously and force 
the entries to disk.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public enum TDurability implements org.apache.thrift.TEnum {
   USE_DEFAULT(0),
   SKIP_WAL(1),
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TFilterByOperator.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TFilterByOperator.java
index b3f975989a8..312dd485a45 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TFilterByOperator.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TFilterByOperator.java
@@ -7,7 +7,7 @@
 package org.apache.hadoop.hbase.thrift2.generated;
 
 
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public enum TFilterByOperator implements org.apache.thrift.TEnum {
   AND(0),
   OR(1);
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TGet.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TGet.java
index 36e0a2e2d12..7f200f5ff02 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TGet.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TGet.java
@@ -20,7 +20,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * If you specify a time range and a timestamp the range is ignored.
  * Timestamps on TColumns are ignored.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TGet implements org.apache.thrift.TBase<TGet, TGet._Fields>, 
java.io.Serializable, Cloneable, Comparable<TGet> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TGet");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/THBaseService.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/THBaseService.java
index 6015a3b525b..eb370d7587b 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/THBaseService.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/THBaseService.java
@@ -7,7 +7,7 @@
 package org.apache.hadoop.hbase.thrift2.generated;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class THBaseService {
 
   public interface Iface {
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/THRegionInfo.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/THRegionInfo.java
index 87af97f7abd..1ba7d4f48b5 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/THRegionInfo.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/THRegionInfo.java
@@ -7,7 +7,7 @@
 package org.apache.hadoop.hbase.thrift2.generated;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class THRegionInfo implements org.apache.thrift.TBase<THRegionInfo, 
THRegionInfo._Fields>, java.io.Serializable, Cloneable, 
Comparable<THRegionInfo> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("THRegionInfo");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/THRegionLocation.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/THRegionLocation.java
index e0710477ff8..208cd424358 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/THRegionLocation.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/THRegionLocation.java
@@ -7,7 +7,7 @@
 package org.apache.hadoop.hbase.thrift2.generated;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class THRegionLocation implements 
org.apache.thrift.TBase<THRegionLocation, THRegionLocation._Fields>, 
java.io.Serializable, Cloneable, Comparable<THRegionLocation> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("THRegionLocation");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TIOError.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TIOError.java
index 6f4d925eb4f..22e807ed30d 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TIOError.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TIOError.java
@@ -12,7 +12,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * to the HBase master or a HBase region server. Also used to return
  * more general HBase error conditions.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TIOError extends org.apache.thrift.TException implements 
org.apache.thrift.TBase<TIOError, TIOError._Fields>, java.io.Serializable, 
Cloneable, Comparable<TIOError> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TIOError");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TIllegalArgument.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TIllegalArgument.java
index 3fe63b2e5be..29446f754c8 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TIllegalArgument.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TIllegalArgument.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * A TIllegalArgument exception indicates an illegal or invalid
  * argument was passed into a procedure.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TIllegalArgument extends org.apache.thrift.TException implements 
org.apache.thrift.TBase<TIllegalArgument, TIllegalArgument._Fields>, 
java.io.Serializable, Cloneable, Comparable<TIllegalArgument> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TIllegalArgument");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TIncrement.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TIncrement.java
index 830e0362f44..ec600aef0c9 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TIncrement.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TIncrement.java
@@ -14,7 +14,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * by changing the durability. If you don't provide durability, it defaults to
  * column family's default setting for durability.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TIncrement implements org.apache.thrift.TBase<TIncrement, 
TIncrement._Fields>, java.io.Serializable, Cloneable, Comparable<TIncrement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TIncrement");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TKeepDeletedCells.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TKeepDeletedCells.java
index e086de35691..e538e5c46ae 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TKeepDeletedCells.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TKeepDeletedCells.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * Thrift wrapper around
  * org.apache.hadoop.hbase.KeepDeletedCells
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public enum TKeepDeletedCells implements org.apache.thrift.TEnum {
   /**
    * Deleted Cells are not retained.
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TLogQueryFilter.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TLogQueryFilter.java
index ebca3239596..0f627742b4e 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TLogQueryFilter.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TLogQueryFilter.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * Thrift wrapper around
  * org.apache.hadoop.hbase.client.LogQueryFilter
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TLogQueryFilter implements 
org.apache.thrift.TBase<TLogQueryFilter, TLogQueryFilter._Fields>, 
java.io.Serializable, Cloneable, Comparable<TLogQueryFilter> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TLogQueryFilter");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TLogType.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TLogType.java
index 48012cc7fbf..6786a9272b5 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TLogType.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TLogType.java
@@ -7,7 +7,7 @@
 package org.apache.hadoop.hbase.thrift2.generated;
 
 
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public enum TLogType implements org.apache.thrift.TEnum {
   SLOW_LOG(1),
   LARGE_LOG(2);
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TMutation.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TMutation.java
index 523203e5caa..ff4f6616e81 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TMutation.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TMutation.java
@@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
 /**
  * Atomic mutation for the specified row. It can be either Put or Delete.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TMutation extends org.apache.thrift.TUnion<TMutation, 
TMutation._Fields> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TMutation");
   private static final org.apache.thrift.protocol.TField PUT_FIELD_DESC = new 
org.apache.thrift.protocol.TField("put", 
org.apache.thrift.protocol.TType.STRUCT, (short)1);
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TNamespaceDescriptor.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TNamespaceDescriptor.java
index cbce4a084a2..5955eb3e6bf 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TNamespaceDescriptor.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TNamespaceDescriptor.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * Thrift wrapper around
  * org.apache.hadoop.hbase.NamespaceDescriptor
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TNamespaceDescriptor implements 
org.apache.thrift.TBase<TNamespaceDescriptor, TNamespaceDescriptor._Fields>, 
java.io.Serializable, Cloneable, Comparable<TNamespaceDescriptor> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TNamespaceDescriptor");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TOnlineLogRecord.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TOnlineLogRecord.java
index c3d6cba7ad2..fd6d8b6a4e7 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TOnlineLogRecord.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TOnlineLogRecord.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * Thrift wrapper around
  * org.apache.hadoop.hbase.client.OnlineLogRecord
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2024-01-12")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TOnlineLogRecord implements 
org.apache.thrift.TBase<TOnlineLogRecord, TOnlineLogRecord._Fields>, 
java.io.Serializable, Cloneable, Comparable<TOnlineLogRecord> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TOnlineLogRecord");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TPut.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TPut.java
index 08614d63627..a1bd2fa024b 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TPut.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TPut.java
@@ -19,7 +19,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * by changing the durability. If you don't provide durability, it defaults to
  * column family's default setting for durability.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TPut implements org.apache.thrift.TBase<TPut, TPut._Fields>, 
java.io.Serializable, Cloneable, Comparable<TPut> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TPut");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TReadType.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TReadType.java
index 612aed531db..82fcfaf6cd9 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TReadType.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TReadType.java
@@ -7,7 +7,7 @@
 package org.apache.hadoop.hbase.thrift2.generated;
 
 
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public enum TReadType implements org.apache.thrift.TEnum {
   DEFAULT(1),
   STREAM(2),
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TResult.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TResult.java
index 1cb1a5eac69..9b0cf1169b0 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TResult.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TResult.java
@@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
 /**
  * if no Result is found, row and columnValues will not be set.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TResult implements org.apache.thrift.TBase<TResult, 
TResult._Fields>, java.io.Serializable, Cloneable, Comparable<TResult> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TResult");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TRowMutations.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TRowMutations.java
index bc9d2b34fa9..0934e40b471 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TRowMutations.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TRowMutations.java
@@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
 /**
  * A TRowMutations object is used to apply a number of Mutations to a single 
row.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TRowMutations implements org.apache.thrift.TBase<TRowMutations, 
TRowMutations._Fields>, java.io.Serializable, Cloneable, 
Comparable<TRowMutations> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TRowMutations");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TScan.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TScan.java
index 437a6510fed..cdc8b977430 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TScan.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TScan.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * Any timestamps in the columns are ignored but the colFamTimeRangeMap 
included, use timeRange to select by timestamp.
  * Max versions defaults to 1.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TScan implements org.apache.thrift.TBase<TScan, TScan._Fields>, 
java.io.Serializable, Cloneable, Comparable<TScan> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TScan");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TServerName.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TServerName.java
index 841ffa63f93..13fe1ce0515 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TServerName.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TServerName.java
@@ -7,7 +7,7 @@
 package org.apache.hadoop.hbase.thrift2.generated;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TServerName implements org.apache.thrift.TBase<TServerName, 
TServerName._Fields>, java.io.Serializable, Cloneable, Comparable<TServerName> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TServerName");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TTableDescriptor.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TTableDescriptor.java
index 8a905481ec0..c6775dd1ac8 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TTableDescriptor.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TTableDescriptor.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * Thrift wrapper around
  * org.apache.hadoop.hbase.client.TableDescriptor
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TTableDescriptor implements 
org.apache.thrift.TBase<TTableDescriptor, TTableDescriptor._Fields>, 
java.io.Serializable, Cloneable, Comparable<TTableDescriptor> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TTableDescriptor");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TTableName.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TTableName.java
index 204a9630204..32e8639b192 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TTableName.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TTableName.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * Thrift wrapper around
  * org.apache.hadoop.hbase.TableName
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TTableName implements org.apache.thrift.TBase<TTableName, 
TTableName._Fields>, java.io.Serializable, Cloneable, Comparable<TTableName> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TTableName");
 
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TThriftServerType.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TThriftServerType.java
index d0b5c346089..208bc4a5e1c 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TThriftServerType.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TThriftServerType.java
@@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
 /**
  * Specify type of thrift server: thrift and thrift2
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public enum TThriftServerType implements org.apache.thrift.TEnum {
   ONE(1),
   TWO(2);
diff --git 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TTimeRange.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TTimeRange.java
index 81fc51dd041..7868c705358 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TTimeRange.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TTimeRange.java
@@ -7,7 +7,7 @@
 package org.apache.hadoop.hbase.thrift2.generated;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2022-07-05")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-18")
 public class TTimeRange implements org.apache.thrift.TBase<TTimeRange, 
TTimeRange._Fields>, java.io.Serializable, Cloneable, Comparable<TTimeRange> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TTimeRange");
 
diff --git 
a/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift2/hbase.thrift 
b/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift2/hbase.thrift
index 675eb237ec3..af8c045ec1b 100644
--- 
a/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift2/hbase.thrift
+++ 
b/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift2/hbase.thrift
@@ -203,7 +203,8 @@ struct TDelete {
   3: optional i64 timestamp,
   4: optional TDeleteType deleteType = 1,
   6: optional map<binary, binary> attributes,
-  7: optional TDurability durability
+  7: optional TDurability durability,
+  8: optional TCellVisibility cellVisibility
 
 }
 
diff --git 
a/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandlerWithLabels.java
 
b/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandlerWithLabels.java
index 505295d7700..c224e4e2c01 100644
--- 
a/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandlerWithLabels.java
+++ 
b/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandlerWithLabels.java
@@ -56,6 +56,7 @@ import 
org.apache.hadoop.hbase.thrift2.generated.TCellVisibility;
 import org.apache.hadoop.hbase.thrift2.generated.TColumn;
 import org.apache.hadoop.hbase.thrift2.generated.TColumnIncrement;
 import org.apache.hadoop.hbase.thrift2.generated.TColumnValue;
+import org.apache.hadoop.hbase.thrift2.generated.TDelete;
 import org.apache.hadoop.hbase.thrift2.generated.TGet;
 import org.apache.hadoop.hbase.thrift2.generated.TIllegalArgument;
 import org.apache.hadoop.hbase.thrift2.generated.TIncrement;
@@ -438,6 +439,94 @@ public class TestThriftHBaseServiceHandlerWithLabels {
     assertArrayEquals(Bytes.add(v1, v2), columnValue.getValue());
   }
 
+  @Test
+  public void testDeleteWithLabels() throws Exception {
+    ThriftHBaseServiceHandler handler = createHandler();
+    byte[] rowName = "testPutGetDeleteGet".getBytes();
+    ByteBuffer table = wrap(tableAname);
+
+    // common auths
+    TAuthorization tauth = new TAuthorization();
+    List<String> labels = new ArrayList<String>();
+    labels.add(SECRET);
+    labels.add(PRIVATE);
+    tauth.setLabels(labels);
+
+    // put
+    List<TColumnValue> columnValues = new ArrayList<TColumnValue>();
+    columnValues.add(new TColumnValue(wrap(familyAname), wrap(qualifierAname), 
wrap(valueAname)));
+    columnValues.add(new TColumnValue(wrap(familyBname), wrap(qualifierBname), 
wrap(valueBname)));
+    TPut put = new TPut(wrap(rowName), columnValues);
+
+    put.setColumnValues(columnValues);
+    put.setCellVisibility(new TCellVisibility()
+      .setExpression("(" + SECRET + "|" + CONFIDENTIAL + ")" + "&" + "!" + 
TOPSECRET));
+    handler.put(table, put);
+
+    // verify put
+    TGet get = new TGet(wrap(rowName));
+    get.setAuthorizations(tauth);
+    TResult result = handler.get(table, get);
+    assertArrayEquals(rowName, result.getRow());
+    List<TColumnValue> returnedColumnValues = result.getColumnValues();
+    assertTColumnValuesEqual(columnValues, returnedColumnValues);
+
+    // delete
+    TDelete delete = new TDelete(wrap(rowName));
+    delete.setCellVisibility(new TCellVisibility()
+      .setExpression("(" + SECRET + "|" + CONFIDENTIAL + ")" + "&" + "!" + 
TOPSECRET));
+    handler.deleteSingle(table, delete);
+
+    // verify delete
+    TGet get2 = new TGet(wrap(rowName));
+    get2.setAuthorizations(tauth);
+    TResult result2 = handler.get(table, get2);
+    assertNull(result2.getRow());
+  }
+
+  @Test
+  public void testDeleteWithLabelsNegativeTest() throws Exception {
+    ThriftHBaseServiceHandler handler = createHandler();
+    byte[] rowName = "testPutGetTryDeleteGet".getBytes();
+    ByteBuffer table = wrap(tableAname);
+
+    // common auths
+    TAuthorization tauth = new TAuthorization();
+    List<String> labels = new ArrayList<String>();
+    labels.add(SECRET);
+    labels.add(PRIVATE);
+    tauth.setLabels(labels);
+
+    // put
+    List<TColumnValue> columnValues = new ArrayList<TColumnValue>();
+    columnValues.add(new TColumnValue(wrap(familyAname), wrap(qualifierAname), 
wrap(valueAname)));
+    columnValues.add(new TColumnValue(wrap(familyBname), wrap(qualifierBname), 
wrap(valueBname)));
+    TPut put = new TPut(wrap(rowName), columnValues);
+
+    put.setColumnValues(columnValues);
+    put.setCellVisibility(new TCellVisibility()
+      .setExpression("(" + SECRET + "|" + CONFIDENTIAL + ")" + "&" + "!" + 
TOPSECRET));
+    handler.put(table, put);
+
+    // verify put
+    TGet get = new TGet(wrap(rowName));
+    get.setAuthorizations(tauth);
+    TResult result = handler.get(table, get);
+    assertArrayEquals(rowName, result.getRow());
+    List<TColumnValue> returnedColumnValues = result.getColumnValues();
+    assertTColumnValuesEqual(columnValues, returnedColumnValues);
+
+    // _try_ delete with _no_ CellVisibility
+    TDelete delete = new TDelete(wrap(rowName));
+    handler.deleteSingle(table, delete);
+
+    // verify delete did in fact _not_ work
+    TGet get2 = new TGet(wrap(rowName));
+    get2.setAuthorizations(tauth);
+    TResult result2 = handler.get(table, get2);
+    assertArrayEquals(rowName, result2.getRow());
+  }
+
   /**
    * Padding numbers to make comparison of sort order easier in a for loop The 
number to pad.
    * @param n   The number to pad.

Reply via email to