HBASE-23232 Remove rsgroup profile from pom.xml of hbase-assembly (#779)
[hbase.git] / hbase-protocol-shaded / src / main / protobuf / Filter.proto
blobb0d6da68c3b3452609c703c77cb70de6f19641b2
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 syntax = "proto2";
20 // This file contains protocol buffers that are used for filters
21 package hbase.pb;
23 option java_package = "org.apache.hadoop.hbase.shaded.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;
29 import "HBase.proto";
30 import "Comparator.proto";
32 message Filter {
33   required string name = 1;
34   optional bytes serialized_filter = 2;
37 message ColumnCountGetFilter {
38   required int32 limit = 1;
41 message ColumnPaginationFilter {
42   required int32 limit = 1;
43   optional int32 offset = 2;
44   optional bytes column_offset = 3;
47 message ColumnPrefixFilter {
48   required bytes prefix = 1;
51 message ColumnRangeFilter {
52   optional bytes min_column = 1;
53   optional bool min_column_inclusive = 2;
54   optional bytes max_column = 3;
55   optional bool max_column_inclusive = 4;
58 message CompareFilter {
59   required CompareType compare_op = 1;
60   optional Comparator comparator = 2;
63 message DependentColumnFilter {
64   required CompareFilter compare_filter = 1;
65   optional bytes column_family = 2;
66   optional bytes column_qualifier = 3;
67   optional bool drop_dependent_column = 4;
70 message FamilyFilter {
71   required CompareFilter compare_filter = 1;
74 message FilterList {
75   required Operator operator = 1;
76   repeated Filter filters = 2;
78   enum Operator {
79     MUST_PASS_ALL = 1;
80     MUST_PASS_ONE = 2;
81   }
84 message FilterWrapper {
85   required Filter filter = 1;
88 message FirstKeyOnlyFilter {
91 message FirstKeyValueMatchingQualifiersFilter {
92   repeated bytes qualifiers = 1;
95 message FuzzyRowFilter {
96   repeated BytesBytesPair fuzzy_keys_data = 1;
99 message InclusiveStopFilter {
100   optional bytes stop_row_key = 1;
103 message KeyOnlyFilter {
104   required bool len_as_val = 1;
107 message MultipleColumnPrefixFilter {
108   repeated bytes sorted_prefixes = 1;
111 message PageFilter {
112   required int64 page_size = 1;
115 message PrefixFilter {
116   optional bytes prefix = 1;
119 message QualifierFilter {
120   required CompareFilter compare_filter = 1;
123 message RandomRowFilter {
124   required float chance = 1;
127 message RowFilter {
128   required CompareFilter compare_filter = 1;
131 message SingleColumnValueExcludeFilter {
132   required SingleColumnValueFilter single_column_value_filter = 1;
135 message SingleColumnValueFilter {
136   optional bytes column_family = 1;
137   optional bytes column_qualifier = 2;
138   required CompareType compare_op = 3;
139   required Comparator comparator = 4;
140   optional bool filter_if_missing = 5;
141   optional bool latest_version_only = 6;
144 message SkipFilter {
145   required Filter filter = 1;
148 message TimestampsFilter {
149   repeated int64 timestamps = 1 [packed=true];
150   optional bool can_hint = 2;
153 message ValueFilter {
154   required CompareFilter compare_filter = 1;
157 message WhileMatchFilter {
158   required Filter filter = 1;
160 message FilterAllFilter {
163 message RowRange {
164   optional bytes start_row = 1;
165   optional bool start_row_inclusive = 2;
166   optional bytes stop_row = 3;
167   optional bool stop_row_inclusive =4;
170 message MultiRowRangeFilter {
171   repeated RowRange row_range_list = 1;
174 message ColumnValueFilter {
175   required bytes family = 1;
176   required bytes qualifier = 2;
177   required CompareType compare_op = 3;
178   required Comparator comparator = 4;