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 }