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 21option java_package = "org.apache.hadoop.hbase.protobuf.generated"; 22option java_outer_classname = "FilterProtos"; 23option java_generic_services = true; 24option java_generate_equals_and_hash = true; 25option optimize_for = SPEED; 26 27import "HBase.proto"; 28import "Comparator.proto"; 29 30message Filter { 31 required string name = 1; 32 optional bytes serialized_filter = 2; 33} 34 35message ColumnCountGetFilter { 36 required int32 limit = 1; 37} 38 39message ColumnPaginationFilter { 40 required int32 limit = 1; 41 optional int32 offset = 2; 42 optional bytes column_offset = 3; 43} 44 45message ColumnPrefixFilter { 46 required bytes prefix = 1; 47} 48 49message ColumnRangeFilter { 50 optional bytes min_column = 1; 51 optional bool min_column_inclusive = 2; 52 optional bytes max_column = 3; 53 optional bool max_column_inclusive = 4; 54} 55 56message CompareFilter { 57 required CompareType compare_op = 1; 58 optional Comparator comparator = 2; 59} 60 61message DependentColumnFilter { 62 required CompareFilter compare_filter = 1; 63 optional bytes column_family = 2; 64 optional bytes column_qualifier = 3; 65 optional bool drop_dependent_column = 4; 66} 67 68message FamilyFilter { 69 required CompareFilter compare_filter = 1; 70} 71 72message FilterList { 73 required Operator operator = 1; 74 repeated Filter filters = 2; 75 76 enum Operator { 77 MUST_PASS_ALL = 1; 78 MUST_PASS_ONE = 2; 79 } 80} 81 82message FilterWrapper { 83 required Filter filter = 1; 84} 85 86message FirstKeyOnlyFilter { 87} 88 89message FirstKeyValueMatchingQualifiersFilter { 90 repeated bytes qualifiers = 1; 91} 92 93message FuzzyRowFilter { 94 repeated BytesBytesPair fuzzy_keys_data = 1; 95} 96 97message InclusiveStopFilter { 98 optional bytes stop_row_key = 1; 99} 100 101message KeyOnlyFilter { 102 required bool len_as_val = 1; 103} 104 105message MultipleColumnPrefixFilter { 106 repeated bytes sorted_prefixes = 1; 107} 108 109message PageFilter { 110 required int64 page_size = 1; 111} 112 113message PrefixFilter { 114 optional bytes prefix = 1; 115} 116 117message QualifierFilter { 118 required CompareFilter compare_filter = 1; 119} 120 121message RandomRowFilter { 122 required float chance = 1; 123} 124 125message RowFilter { 126 required CompareFilter compare_filter = 1; 127} 128 129message SingleColumnValueExcludeFilter { 130 required SingleColumnValueFilter single_column_value_filter = 1; 131} 132 133message SingleColumnValueFilter { 134 optional bytes column_family = 1; 135 optional bytes column_qualifier = 2; 136 required CompareType compare_op = 3; 137 required Comparator comparator = 4; 138 optional bool filter_if_missing = 5; 139 optional bool latest_version_only = 6; 140} 141 142message SkipFilter { 143 required Filter filter = 1; 144} 145 146message TimestampsFilter { 147 repeated int64 timestamps = 1 [packed=true]; 148} 149 150message ValueFilter { 151 required CompareFilter compare_filter = 1; 152} 153 154message WhileMatchFilter { 155 required Filter filter = 1; 156} 157message FilterAllFilter { 158} 159 160message RowRange { 161 optional bytes start_row = 1; 162 optional bool start_row_inclusive = 2; 163 optional bytes stop_row = 3; 164 optional bool stop_row_inclusive =4; 165} 166 167message MultiRowRangeFilter { 168 repeated RowRange row_range_list = 1; 169}