blob: 1fa66978234c9ccdc074190897c92252bd7bcecd [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// This file contains protocol buffers that are used for filters
package hbase.pb;
option java_package = "org.apache.hadoop.hbase.protobuf.generated";
option java_outer_classname = "FilterProtos";
option java_generic_services = true;
option java_generate_equals_and_hash = true;
option optimize_for = SPEED;
import "HBase.proto";
import "Comparator.proto";
message Filter {
required string name = 1;
optional bytes serialized_filter = 2;
}
message ColumnCountGetFilter {
required int32 limit = 1;
}
message ColumnPaginationFilter {
required int32 limit = 1;
optional int32 offset = 2;
optional bytes column_offset = 3;
}
message ColumnPrefixFilter {
required bytes prefix = 1;
}
message ColumnRangeFilter {
optional bytes min_column = 1;
optional bool min_column_inclusive = 2;
optional bytes max_column = 3;
optional bool max_column_inclusive = 4;
}
message CompareFilter {
required CompareType compare_op = 1;
optional Comparator comparator = 2;
}
message DependentColumnFilter {
required CompareFilter compare_filter = 1;
optional bytes column_family = 2;
optional bytes column_qualifier = 3;
optional bool drop_dependent_column = 4;
}
message FamilyFilter {
required CompareFilter compare_filter = 1;
}
message FilterList {
required Operator operator = 1;
repeated Filter filters = 2;
enum Operator {
MUST_PASS_ALL = 1;
MUST_PASS_ONE = 2;
}
}
message FilterWrapper {
required Filter filter = 1;
}
message FirstKeyOnlyFilter {
}
message FirstKeyValueMatchingQualifiersFilter {
repeated bytes qualifiers = 1;
}
message FuzzyRowFilter {
repeated BytesBytesPair fuzzy_keys_data = 1;
}
message InclusiveStopFilter {
optional bytes stop_row_key = 1;
}
message KeyOnlyFilter {
required bool len_as_val = 1;
}
message MultipleColumnPrefixFilter {
repeated bytes sorted_prefixes = 1;
}
message PageFilter {
required int64 page_size = 1;
}
message PrefixFilter {
optional bytes prefix = 1;
}
message QualifierFilter {
required CompareFilter compare_filter = 1;
}
message RandomRowFilter {
required float chance = 1;
}
message RowFilter {
required CompareFilter compare_filter = 1;
}
message SingleColumnValueExcludeFilter {
required SingleColumnValueFilter single_column_value_filter = 1;
}
message SingleColumnValueFilter {
optional bytes column_family = 1;
optional bytes column_qualifier = 2;
required CompareType compare_op = 3;
required Comparator comparator = 4;
optional bool filter_if_missing = 5;
optional bool latest_version_only = 6;
}
message SkipFilter {
required Filter filter = 1;
}
message TimestampsFilter {
repeated int64 timestamps = 1 [packed=true];
optional bool can_hint = 2;
}
message ValueFilter {
required CompareFilter compare_filter = 1;
}
message WhileMatchFilter {
required Filter filter = 1;
}
message FilterAllFilter {
}
message RowRange {
optional bytes start_row = 1;
optional bool start_row_inclusive = 2;
optional bytes stop_row = 3;
optional bool stop_row_inclusive =4;
}
message MultiRowRangeFilter {
repeated RowRange row_range_list = 1;
}