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

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


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

commit 5991707b37dfbd83c8ca9c718416df497355d632
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 +-
 .../thrift/generated/TAccessControlEntity.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 +-
 .../hbase/thrift/generated/TPermissionScope.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 +
 .../thrift2/generated/TAccessControlEntity.java    |   2 +-
 .../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 +-
 .../hbase/thrift2/generated/TCompareOperator.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 +-
 .../hbase/thrift2/generated/TPermissionScope.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 +++++++++++++++
 61 files changed, 269 insertions(+), 63 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 0fdf62bd90e..502bbd48e6d 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 dde17768b4c..89cff0ffcf0 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 39afd8f8643..83691c3cc3e 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 5416e4402e5..0dc47dbd3c8 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 b0d4f2d327b..9d4a4f543f4 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 2add59b6773..1a1f8bd83a4 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 a5d2ce540a0..ddbfcb3cd8b 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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/TAccessControlEntity.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TAccessControlEntity.java
index 7cb35644b49..963b946bf78 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TAccessControlEntity.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TAccessControlEntity.java
@@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift.generated;
 /**
  * TAccessControlEntity for permission control
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 public class TAccessControlEntity implements 
org.apache.thrift.TBase<TAccessControlEntity, TAccessControlEntity._Fields>, 
java.io.Serializable, Cloneable, Comparable<TAccessControlEntity> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TAccessControlEntity");
 
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 9a7b7103f36..5a141449842 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 eab44eb300e..af7470ee092 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 323f94a888e..e32bd4e57e6 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 7868a294c09..9a6a21885ce 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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/TPermissionScope.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TPermissionScope.java
index e2be41d9b1c..05920189d8a 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TPermissionScope.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TPermissionScope.java
@@ -7,7 +7,7 @@
 package org.apache.hadoop.hbase.thrift.generated;
 
 
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 public enum TPermissionScope implements org.apache.thrift.TEnum {
   TABLE(0),
   NAMESPACE(1);
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 e38d0ae312b..2dddba7368f 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 9f65146ac32..911a0e8f79f 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 3d60b6b58b1..21afb638b54 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 8406bde49a4..cf18a5d9e19 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 c802883c939..23caaf26e00 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
@@ -389,6 +389,10 @@ public final 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/TAccessControlEntity.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TAccessControlEntity.java
index e7234c0b85e..f8d2e0fef93 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TAccessControlEntity.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TAccessControlEntity.java
@@ -10,7 +10,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
 /**
  * TAccessControlEntity for permission control
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 public class TAccessControlEntity implements 
org.apache.thrift.TBase<TAccessControlEntity, TAccessControlEntity._Fields>, 
java.io.Serializable, Cloneable, Comparable<TAccessControlEntity> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TAccessControlEntity");
 
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 f68b9cb2931..cd3ac911fbe 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 9696bbf3e5d..880994e37a9 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 f9e9ec5bf6b..f62eb36b0e7 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 c142b2cb158..73655002210 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 83aa7b5dd6b..18f52911adf 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 10258ba5ecc..74e07b51693 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 72099a51d55..00bc7987bd2 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 070133a372f..09699bf9341 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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/TCompareOperator.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TCompareOperator.java
index 38d888a772c..eff42b8e7be 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TCompareOperator.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TCompareOperator.java
@@ -11,7 +11,7 @@ package org.apache.hadoop.hbase.thrift2.generated;
  * Thrift wrapper around
  * org.apache.hadoop.hbase.CompareOperator.
  */
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 public enum TCompareOperator 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 d586c9f8e9a..9b7c1401b4a 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 5194e631bbb..ae7f5b6868b 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 352abd30d8b..816eb3b7288 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 031e11a7c0b..e243ac1c404 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 abec1f8b6db..562a4536106 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 7ff35002b4c..c77ed62e5e7 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 f50fade73f1..45bd1b42989 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 d8a21b33beb..583c379e96e 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 dea2991b4a9..7dc1e91a267 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 7ae44c656f7..3597eb68425 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 0ab177748cc..1f9d74177a2 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 ae7bfae18c1..9e4b3a5ab76 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 3b51cf8e92e..cd59e237830 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 8794289d7b1..5761123379a 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 fd62e9f2153..9a8d316f160 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 a2000dc9eb8..589bf1df3a7 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 f291ed912df..faecab0b363 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 5fbd7d2c95f..1a59c11470c 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 ca91ba474e2..cb7051836ef 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 5611f6cefff..b619b3c638a 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-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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/TPermissionScope.java
 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TPermissionScope.java
index 6ca509e08cf..57945210bb5 100644
--- 
a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TPermissionScope.java
+++ 
b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/generated/TPermissionScope.java
@@ -7,7 +7,7 @@
 package org.apache.hadoop.hbase.thrift2.generated;
 
 
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 public enum TPermissionScope implements org.apache.thrift.TEnum {
   TABLE(0),
   NAMESPACE(1);
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 2f4a7a995c8..d2619be1bde 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 b9bf47e7c19..8b5b64a3ebc 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 615fccdd2ed..9955599295e 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 b70fcb4254f..20c54503ab5 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 32c13cee2a9..585320bc5d0 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 f39adc98d9c..dc9234535d0 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 49ca2667186..104fa10bcbd 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 5e19f0329b7..86ce0fa6dc7 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 f959ffd7f71..b7962112852 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 a6a341aaa5b..50fb6b8feb8 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 = "2024-05-08")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.14.1)", date = "2025-08-16")
 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 ec6504447c1..43cf01f5b56 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 e61c58efbfb..4efbd8cc3cc 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
@@ -58,6 +58,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;
@@ -439,6 +440,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