github.com/tsuna/gohbase@v0.0.0-20250731002811-4ffcadfba63e/pb/Filter.proto (about)

     1  /**
     2   * Licensed to the Apache Software Foundation (ASF) under one
     3   * or more contributor license agreements.  See the NOTICE file
     4   * distributed with this work for additional information
     5   * regarding copyright ownership.  The ASF licenses this file
     6   * to you under the Apache License, Version 2.0 (the
     7   * "License"); you may not use this file except in compliance
     8   * with the License.  You may obtain a copy of the License at
     9   *
    10   *     http://www.apache.org/licenses/LICENSE-2.0
    11   *
    12   * Unless required by applicable law or agreed to in writing, software
    13   * distributed under the License is distributed on an "AS IS" BASIS,
    14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    15   * See the License for the specific language governing permissions and
    16   * limitations under the License.
    17   */
    18  
    19  // This file contains protocol buffers that are used for filters
    20  syntax = "proto2";
    21  package pb;
    22  
    23  option java_package = "org.apache.hadoop.hbase.protobuf.generated";
    24  option java_outer_classname = "FilterProtos";
    25  option java_generic_services = true;
    26  option java_generate_equals_and_hash = true;
    27  option optimize_for = SPEED;
    28  option go_package = "../pb";
    29  
    30  import "HBase.proto";
    31  import "Comparator.proto";
    32  
    33  message Filter {
    34    required string name = 1;
    35    optional bytes serialized_filter = 2;
    36  }
    37  
    38  message ColumnCountGetFilter {
    39    required int32 limit = 1;
    40  }
    41  
    42  message ColumnPaginationFilter {
    43    required int32 limit = 1;
    44    optional int32 offset = 2;
    45    optional bytes column_offset = 3;
    46  }
    47  
    48  message ColumnPrefixFilter {
    49    required bytes prefix = 1;
    50  }
    51  
    52  message ColumnRangeFilter {
    53    optional bytes min_column = 1;
    54    optional bool min_column_inclusive = 2;
    55    optional bytes max_column = 3;
    56    optional bool max_column_inclusive = 4;
    57  }
    58  
    59  message CompareFilter {
    60    required CompareType compare_op = 1;
    61    optional Comparator comparator = 2;
    62  }
    63  
    64  message DependentColumnFilter {
    65    required CompareFilter compare_filter = 1;
    66    optional bytes column_family = 2;
    67    optional bytes column_qualifier = 3;
    68    optional bool drop_dependent_column = 4;
    69  }
    70  
    71  message FamilyFilter {
    72    required CompareFilter compare_filter = 1;
    73  }
    74  
    75  message FilterList {
    76    required Operator operator = 1;
    77    repeated Filter filters = 2;
    78  
    79    enum Operator {
    80      MUST_PASS_ALL = 1;
    81      MUST_PASS_ONE = 2;
    82    }
    83  }
    84  
    85  message FilterWrapper {
    86    required Filter filter = 1;
    87  }
    88  
    89  message FirstKeyOnlyFilter {
    90  }
    91  
    92  message FirstKeyValueMatchingQualifiersFilter {
    93    repeated bytes qualifiers = 1;
    94  }
    95  
    96  message FuzzyRowFilter {
    97    repeated BytesBytesPair fuzzy_keys_data = 1;
    98  }
    99  
   100  message InclusiveStopFilter {
   101    optional bytes stop_row_key = 1;
   102  }
   103  
   104  message KeyOnlyFilter {
   105    required bool len_as_val = 1;
   106  }
   107  
   108  message MultipleColumnPrefixFilter {
   109    repeated bytes sorted_prefixes = 1;
   110  }
   111  
   112  message PageFilter {
   113    required int64 page_size = 1;
   114  }
   115  
   116  message PrefixFilter {
   117    optional bytes prefix = 1;
   118  }
   119  
   120  message QualifierFilter {
   121    required CompareFilter compare_filter = 1;
   122  }
   123  
   124  message RandomRowFilter {
   125    required float chance = 1;
   126  }
   127  
   128  message RowFilter {
   129    required CompareFilter compare_filter = 1;
   130  }
   131  
   132  message SingleColumnValueExcludeFilter {
   133    required SingleColumnValueFilter single_column_value_filter = 1;
   134  }
   135  
   136  message SingleColumnValueFilter {
   137    optional bytes column_family = 1;
   138    optional bytes column_qualifier = 2;
   139    required CompareType compare_op = 3;
   140    required Comparator comparator = 4;
   141    optional bool filter_if_missing = 5;
   142    optional bool latest_version_only = 6;
   143  }
   144  
   145  message SkipFilter {
   146    required Filter filter = 1;
   147  }
   148  
   149  message TimestampsFilter {
   150    repeated int64 timestamps = 1 [packed=true];
   151    optional bool can_hint = 2;
   152  }
   153  
   154  message ValueFilter {
   155    required CompareFilter compare_filter = 1;
   156  }
   157  
   158  message WhileMatchFilter {
   159    required Filter filter = 1;
   160  }
   161  message FilterAllFilter {
   162  }
   163  
   164  message RowRange {
   165    optional bytes start_row = 1;
   166    optional bool start_row_inclusive = 2;
   167    optional bytes stop_row = 3;
   168    optional bool stop_row_inclusive =4;
   169  }
   170  
   171  message MultiRowRangeFilter {
   172    repeated RowRange row_range_list = 1;
   173  }