public final class RowFilter extends GeneratedMessageV3 implements RowFilterOrBuilder
Takes a row as input and produces an alternate view of the row based on specified rules. For example, a RowFilter might trim down a row to include just the cells from columns matching a given regular expression, or might return all the cells of a row but not their values. More complicated filters can be composed out of these components to express requests such as, "within every column of a particular family, give just the two most recent cells which are older than timestamp X." There are two broad categories of RowFilters (true filters and transformers), as well as two ways to compose simple filters into more complex ones (chains and interleaves). They work as follows:
- True filters alter the input row by excluding some of its cells wholesale
from the output row. An example of a true filter is the
value_regex_filter
, which excludes cells whose values don't match the specified pattern. All regex true filters use RE2 syntax (https://github.com/google/re2/wiki/Syntax) in raw byte mode (RE2::Latin1), and are evaluated as full matches. An important point to keep in mind is thatRE2(.)
is equivalent by default toRE2([^\n])
, meaning that it does not match newlines. When attempting to match an arbitrary byte, you should therefore use the escape sequence\C
, which may need to be further escaped as\\C
in your client language. - Transformers alter the input row by changing the values of some of its
cells in the output, without excluding them completely. Currently, the only
supported transformer is the
strip_value_transformer
, which replaces every cell's value with the empty string. - Chains and interleaves are described in more detail in the RowFilter.Chain and RowFilter.Interleave documentation. The total serialized size of a RowFilter message must not exceed 4096 bytes, and RowFilters may not be nested within each other (in Chains or Interleaves) to a depth of more than 20.
Protobuf type google.bigtable.v2.RowFilter
Inheritance
Object > AbstractMessageLite<MessageType,BuilderType> > AbstractMessage > GeneratedMessageV3 > RowFilterImplements
RowFilterOrBuilderStatic Fields
APPLY_LABEL_TRANSFORMER_FIELD_NUMBER
public static final int APPLY_LABEL_TRANSFORMER_FIELD_NUMBER
Type | Description |
int |
BLOCK_ALL_FILTER_FIELD_NUMBER
public static final int BLOCK_ALL_FILTER_FIELD_NUMBER
Type | Description |
int |
CELLS_PER_COLUMN_LIMIT_FILTER_FIELD_NUMBER
public static final int CELLS_PER_COLUMN_LIMIT_FILTER_FIELD_NUMBER
Type | Description |
int |
CELLS_PER_ROW_LIMIT_FILTER_FIELD_NUMBER
public static final int CELLS_PER_ROW_LIMIT_FILTER_FIELD_NUMBER
Type | Description |
int |
CELLS_PER_ROW_OFFSET_FILTER_FIELD_NUMBER
public static final int CELLS_PER_ROW_OFFSET_FILTER_FIELD_NUMBER
Type | Description |
int |
CHAIN_FIELD_NUMBER
public static final int CHAIN_FIELD_NUMBER
Type | Description |
int |
COLUMN_QUALIFIER_REGEX_FILTER_FIELD_NUMBER
public static final int COLUMN_QUALIFIER_REGEX_FILTER_FIELD_NUMBER
Type | Description |
int |
COLUMN_RANGE_FILTER_FIELD_NUMBER
public static final int COLUMN_RANGE_FILTER_FIELD_NUMBER
Type | Description |
int |
CONDITION_FIELD_NUMBER
public static final int CONDITION_FIELD_NUMBER
Type | Description |
int |
FAMILY_NAME_REGEX_FILTER_FIELD_NUMBER
public static final int FAMILY_NAME_REGEX_FILTER_FIELD_NUMBER
Type | Description |
int |
INTERLEAVE_FIELD_NUMBER
public static final int INTERLEAVE_FIELD_NUMBER
Type | Description |
int |
PASS_ALL_FILTER_FIELD_NUMBER
public static final int PASS_ALL_FILTER_FIELD_NUMBER
Type | Description |
int |
ROW_KEY_REGEX_FILTER_FIELD_NUMBER
public static final int ROW_KEY_REGEX_FILTER_FIELD_NUMBER
Type | Description |
int |
ROW_SAMPLE_FILTER_FIELD_NUMBER
public static final int ROW_SAMPLE_FILTER_FIELD_NUMBER
Type | Description |
int |
SINK_FIELD_NUMBER
public static final int SINK_FIELD_NUMBER
Type | Description |
int |
STRIP_VALUE_TRANSFORMER_FIELD_NUMBER
public static final int STRIP_VALUE_TRANSFORMER_FIELD_NUMBER
Type | Description |
int |
TIMESTAMP_RANGE_FILTER_FIELD_NUMBER
public static final int TIMESTAMP_RANGE_FILTER_FIELD_NUMBER
Type | Description |
int |
VALUE_RANGE_FILTER_FIELD_NUMBER
public static final int VALUE_RANGE_FILTER_FIELD_NUMBER
Type | Description |
int |
VALUE_REGEX_FILTER_FIELD_NUMBER
public static final int VALUE_REGEX_FILTER_FIELD_NUMBER
Type | Description |
int |
Static Methods
getDefaultInstance()
public static RowFilter getDefaultInstance()
Type | Description |
RowFilter |
getDescriptor()
public static final Descriptors.Descriptor getDescriptor()
Type | Description |
Descriptor |
newBuilder()
public static RowFilter.Builder newBuilder()
Type | Description |
RowFilter.Builder |
newBuilder(RowFilter prototype)
public static RowFilter.Builder newBuilder(RowFilter prototype)
Name | Description |
prototype | RowFilter |
Type | Description |
RowFilter.Builder |
parseDelimitedFrom(InputStream input)
public static RowFilter parseDelimitedFrom(InputStream input)
Name | Description |
input | InputStream |
Type | Description |
RowFilter |
Type | Description |
IOException |
parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
public static RowFilter parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Name | Description |
input | InputStream |
extensionRegistry | ExtensionRegistryLite |
Type | Description |
RowFilter |
Type | Description |
IOException |
parseFrom(byte[] data)
public static RowFilter parseFrom(byte[] data)
Name | Description |
data | byte[] |
Type | Description |
RowFilter |
Type | Description |
InvalidProtocolBufferException |
parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
public static RowFilter parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
Name | Description |
data | byte[] |
extensionRegistry | ExtensionRegistryLite |
Type | Description |
RowFilter |
Type | Description |
InvalidProtocolBufferException |
parseFrom(ByteString data)
public static RowFilter parseFrom(ByteString data)
Name | Description |
data | ByteString |
Type | Description |
RowFilter |
Type | Description |
InvalidProtocolBufferException |
parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
public static RowFilter parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
Name | Description |
data | ByteString |
extensionRegistry | ExtensionRegistryLite |
Type | Description |
RowFilter |
Type | Description |
InvalidProtocolBufferException |
parseFrom(CodedInputStream input)
public static RowFilter parseFrom(CodedInputStream input)
Name | Description |
input | CodedInputStream |
Type | Description |
RowFilter |
Type | Description |
IOException |
parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
public static RowFilter parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Name | Description |
input | CodedInputStream |
extensionRegistry | ExtensionRegistryLite |
Type | Description |
RowFilter |
Type | Description |
IOException |
parseFrom(InputStream input)
public static RowFilter parseFrom(InputStream input)
Name | Description |
input | InputStream |
Type | Description |
RowFilter |
Type | Description |
IOException |
parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
public static RowFilter parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Name | Description |
input | InputStream |
extensionRegistry | ExtensionRegistryLite |
Type | Description |
RowFilter |
Type | Description |
IOException |
parseFrom(ByteBuffer data)
public static RowFilter parseFrom(ByteBuffer data)
Name | Description |
data | ByteBuffer |
Type | Description |
RowFilter |
Type | Description |
InvalidProtocolBufferException |
parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
public static RowFilter parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
Name | Description |
data | ByteBuffer |
extensionRegistry | ExtensionRegistryLite |
Type | Description |
RowFilter |
Type | Description |
InvalidProtocolBufferException |
parser()
public static Parser<RowFilter> parser()
Type | Description |
Parser<RowFilter> |
Methods
equals(Object obj)
public boolean equals(Object obj)
Name | Description |
obj | Object |
Type | Description |
boolean |
getApplyLabelTransformer()
public String getApplyLabelTransformer()
Applies the given label to all cells in the output row. This allows
the client to determine which results were produced from which part of
the filter.
Values must be at most 15 characters in length, and match the RE2
pattern [a-z0-9\\-]+
Due to a technical limitation, it is not currently possible to apply
multiple labels to a cell. As a result, a Chain may have no more than
one sub-filter which contains a apply_label_transformer
. It is okay for
an Interleave to contain multiple apply_label_transformers
, as they
will be applied to separate copies of the input. This may be relaxed in
the future.
string apply_label_transformer = 19;
Type | Description |
String | The applyLabelTransformer. |
getApplyLabelTransformerBytes()
public ByteString getApplyLabelTransformerBytes()
Applies the given label to all cells in the output row. This allows
the client to determine which results were produced from which part of
the filter.
Values must be at most 15 characters in length, and match the RE2
pattern [a-z0-9\\-]+
Due to a technical limitation, it is not currently possible to apply
multiple labels to a cell. As a result, a Chain may have no more than
one sub-filter which contains a apply_label_transformer
. It is okay for
an Interleave to contain multiple apply_label_transformers
, as they
will be applied to separate copies of the input. This may be relaxed in
the future.
string apply_label_transformer = 19;
Type | Description |
ByteString | The bytes for applyLabelTransformer. |
getBlockAllFilter()
public boolean getBlockAllFilter()
Does not match any cells, regardless of input. Useful for temporarily disabling just part of a filter.
bool block_all_filter = 18;
Type | Description |
boolean | The blockAllFilter. |
getCellsPerColumnLimitFilter()
public int getCellsPerColumnLimitFilter()
Matches only the most recent N cells within each column. For example,
if N=2, this filter would match column foo:bar
at timestamps 10 and 9,
skip all earlier cells in foo:bar
, and then begin matching again in
column foo:bar2
.
If duplicate cells are present, as is possible when using an Interleave,
each copy of the cell is counted separately.
int32 cells_per_column_limit_filter = 12;
Type | Description |
int | The cellsPerColumnLimitFilter. |
getCellsPerRowLimitFilter()
public int getCellsPerRowLimitFilter()
Matches only the first N cells of each row. If duplicate cells are present, as is possible when using an Interleave, each copy of the cell is counted separately.
int32 cells_per_row_limit_filter = 11;
Type | Description |
int | The cellsPerRowLimitFilter. |
getCellsPerRowOffsetFilter()
public int getCellsPerRowOffsetFilter()
Skips the first N cells of each row, matching all subsequent cells. If duplicate cells are present, as is possible when using an Interleave, each copy of the cell is counted separately.
int32 cells_per_row_offset_filter = 10;
Type | Description |
int | The cellsPerRowOffsetFilter. |
getChain()
public RowFilter.Chain getChain()
Applies several RowFilters to the data in sequence, progressively narrowing the results.
.google.bigtable.v2.RowFilter.Chain chain = 1;
Type | Description |
RowFilter.Chain | The chain. |
getChainOrBuilder()
public RowFilter.ChainOrBuilder getChainOrBuilder()
Applies several RowFilters to the data in sequence, progressively narrowing the results.
.google.bigtable.v2.RowFilter.Chain chain = 1;
Type | Description |
RowFilter.ChainOrBuilder |
getColumnQualifierRegexFilter()
public ByteString getColumnQualifierRegexFilter()
Matches only cells from columns whose qualifiers satisfy the given RE2
regex.
Note that, since column qualifiers can contain arbitrary bytes, the \C
escape sequence must be used if a true wildcard is desired. The .
character will not match the new line character \n
, which may be
present in a binary qualifier.
bytes column_qualifier_regex_filter = 6;
Type | Description |
ByteString | The columnQualifierRegexFilter. |
getColumnRangeFilter()
public ColumnRange getColumnRangeFilter()
Matches only cells from columns within the given range.
.google.bigtable.v2.ColumnRange column_range_filter = 7;
Type | Description |
ColumnRange | The columnRangeFilter. |
getColumnRangeFilterOrBuilder()
public ColumnRangeOrBuilder getColumnRangeFilterOrBuilder()
Matches only cells from columns within the given range.
.google.bigtable.v2.ColumnRange column_range_filter = 7;
Type | Description |
ColumnRangeOrBuilder |
getCondition()
public RowFilter.Condition getCondition()
Applies one of two possible RowFilters to the data based on the output of a predicate RowFilter.
.google.bigtable.v2.RowFilter.Condition condition = 3;
Type | Description |
RowFilter.Condition | The condition. |
getConditionOrBuilder()
public RowFilter.ConditionOrBuilder getConditionOrBuilder()
Applies one of two possible RowFilters to the data based on the output of a predicate RowFilter.
.google.bigtable.v2.RowFilter.Condition condition = 3;
Type | Description |
RowFilter.ConditionOrBuilder |
getDefaultInstanceForType()
public RowFilter getDefaultInstanceForType()
Type | Description |
RowFilter |
getFamilyNameRegexFilter()
public String getFamilyNameRegexFilter()
Matches only cells from columns whose families satisfy the given RE2
regex. For technical reasons, the regex must not contain the :
character, even if it is not being used as a literal.
Note that, since column families cannot contain the new line character
\n
, it is sufficient to use .
as a full wildcard when matching
column family names.
string family_name_regex_filter = 5;
Type | Description |
String | The familyNameRegexFilter. |
getFamilyNameRegexFilterBytes()
public ByteString getFamilyNameRegexFilterBytes()
Matches only cells from columns whose families satisfy the given RE2
regex. For technical reasons, the regex must not contain the :
character, even if it is not being used as a literal.
Note that, since column families cannot contain the new line character
\n
, it is sufficient to use .
as a full wildcard when matching
column family names.
string family_name_regex_filter = 5;
Type | Description |
ByteString | The bytes for familyNameRegexFilter. |
getFilterCase()
public RowFilter.FilterCase getFilterCase()
Type | Description |
RowFilter.FilterCase |
getInterleave()
public RowFilter.Interleave getInterleave()
Applies several RowFilters to the data in parallel and combines the results.
.google.bigtable.v2.RowFilter.Interleave interleave = 2;
Type | Description |
RowFilter.Interleave | The interleave. |
getInterleaveOrBuilder()
public RowFilter.InterleaveOrBuilder getInterleaveOrBuilder()
Applies several RowFilters to the data in parallel and combines the results.
.google.bigtable.v2.RowFilter.Interleave interleave = 2;
Type | Description |
RowFilter.InterleaveOrBuilder |
getParserForType()
public Parser<RowFilter> getParserForType()
Type | Description |
Parser<RowFilter> |
getPassAllFilter()
public boolean getPassAllFilter()
Matches all cells, regardless of input. Functionally equivalent to
leaving filter
unset, but included for completeness.
bool pass_all_filter = 17;
Type | Description |
boolean | The passAllFilter. |
getRowKeyRegexFilter()
public ByteString getRowKeyRegexFilter()
Matches only cells from rows whose keys satisfy the given RE2 regex. In
other words, passes through the entire row when the key matches, and
otherwise produces an empty row.
Note that, since row keys can contain arbitrary bytes, the \C
escape
sequence must be used if a true wildcard is desired. The .
character
will not match the new line character \n
, which may be present in a
binary key.
bytes row_key_regex_filter = 4;
Type | Description |
ByteString | The rowKeyRegexFilter. |
getRowSampleFilter()
public double getRowSampleFilter()
Matches all cells from a row with probability p, and matches no cells from the row with probability 1-p.
double row_sample_filter = 14;
Type | Description |
double | The rowSampleFilter. |
getSerializedSize()
public int getSerializedSize()
Type | Description |
int |
getSink()
public boolean getSink()
ADVANCED USE ONLY.
Hook for introspection into the RowFilter. Outputs all cells directly to
the output of the read rather than to any parent filter. Consider the
following example:
Chain(
FamilyRegex("A"),
Interleave(
All(),
Chain(Label("foo"), Sink())
),
QualifierRegex("B")
)
A,A,1,w
A,B,2,x
B,B,4,z
|
FamilyRegex("A")
|
A,A,1,w
A,B,2,x
|
+------------+-------------+
| |
All() Label(foo)
| |
A,A,1,w A,A,1,w,labels:[foo]
A,B,2,x A,B,2,x,labels:[foo]
| |
| Sink() --------------+
| | |
+------------+ x------+ A,A,1,w,labels:[foo]
| A,B,2,x,labels:[foo]
A,A,1,w |
A,B,2,x |
| |
QualifierRegex("B") |
| |
A,B,2,x |
| |
+--------------------------------+
|
A,A,1,w,labels:[foo]
A,B,2,x,labels:[foo] // could be switched
A,B,2,x // could be switched
Despite being excluded by the qualifier filter, a copy of every cell
that reaches the sink is present in the final result.
As with an Interleave,
duplicate cells are possible, and appear in an unspecified mutual order.
In this case we have a duplicate with column "A:B" and timestamp 2,
because one copy passed through the all filter while the other was
passed through the label and sink. Note that one copy has label "foo",
while the other does not.
Cannot be used within the predicate_filter
, true_filter
, or
false_filter
of a Condition.
bool sink = 16;
Type | Description |
boolean | The sink. |
getStripValueTransformer()
public boolean getStripValueTransformer()
Replaces each cell's value with the empty string.
bool strip_value_transformer = 13;
Type | Description |
boolean | The stripValueTransformer. |
getTimestampRangeFilter()
public TimestampRange getTimestampRangeFilter()
Matches only cells with timestamps within the given range.
.google.bigtable.v2.TimestampRange timestamp_range_filter = 8;
Type | Description |
TimestampRange | The timestampRangeFilter. |
getTimestampRangeFilterOrBuilder()
public TimestampRangeOrBuilder getTimestampRangeFilterOrBuilder()
Matches only cells with timestamps within the given range.
.google.bigtable.v2.TimestampRange timestamp_range_filter = 8;
Type | Description |
TimestampRangeOrBuilder |
getUnknownFields()
public final UnknownFieldSet getUnknownFields()
Type | Description |
UnknownFieldSet |
getValueRangeFilter()
public ValueRange getValueRangeFilter()
Matches only cells with values that fall within the given range.
.google.bigtable.v2.ValueRange value_range_filter = 15;
Type | Description |
ValueRange | The valueRangeFilter. |
getValueRangeFilterOrBuilder()
public ValueRangeOrBuilder getValueRangeFilterOrBuilder()
Matches only cells with values that fall within the given range.
.google.bigtable.v2.ValueRange value_range_filter = 15;
Type | Description |
ValueRangeOrBuilder |
getValueRegexFilter()
public ByteString getValueRegexFilter()
Matches only cells with values that satisfy the given regular expression.
Note that, since cell values can contain arbitrary bytes, the \C
escape
sequence must be used if a true wildcard is desired. The .
character
will not match the new line character \n
, which may be present in a
binary value.
bytes value_regex_filter = 9;
Type | Description |
ByteString | The valueRegexFilter. |
hasApplyLabelTransformer()
public boolean hasApplyLabelTransformer()
Applies the given label to all cells in the output row. This allows
the client to determine which results were produced from which part of
the filter.
Values must be at most 15 characters in length, and match the RE2
pattern [a-z0-9\\-]+
Due to a technical limitation, it is not currently possible to apply
multiple labels to a cell. As a result, a Chain may have no more than
one sub-filter which contains a apply_label_transformer
. It is okay for
an Interleave to contain multiple apply_label_transformers
, as they
will be applied to separate copies of the input. This may be relaxed in
the future.
string apply_label_transformer = 19;
Type | Description |
boolean | Whether the applyLabelTransformer field is set. |
hasBlockAllFilter()
public boolean hasBlockAllFilter()
Does not match any cells, regardless of input. Useful for temporarily disabling just part of a filter.
bool block_all_filter = 18;
Type | Description |
boolean | Whether the blockAllFilter field is set. |
hasCellsPerColumnLimitFilter()
public boolean hasCellsPerColumnLimitFilter()
Matches only the most recent N cells within each column. For example,
if N=2, this filter would match column foo:bar
at timestamps 10 and 9,
skip all earlier cells in foo:bar
, and then begin matching again in
column foo:bar2
.
If duplicate cells are present, as is possible when using an Interleave,
each copy of the cell is counted separately.
int32 cells_per_column_limit_filter = 12;
Type | Description |
boolean | Whether the cellsPerColumnLimitFilter field is set. |
hasCellsPerRowLimitFilter()
public boolean hasCellsPerRowLimitFilter()
Matches only the first N cells of each row. If duplicate cells are present, as is possible when using an Interleave, each copy of the cell is counted separately.
int32 cells_per_row_limit_filter = 11;
Type | Description |
boolean | Whether the cellsPerRowLimitFilter field is set. |
hasCellsPerRowOffsetFilter()
public boolean hasCellsPerRowOffsetFilter()
Skips the first N cells of each row, matching all subsequent cells. If duplicate cells are present, as is possible when using an Interleave, each copy of the cell is counted separately.
int32 cells_per_row_offset_filter = 10;
Type | Description |
boolean | Whether the cellsPerRowOffsetFilter field is set. |
hasChain()
public boolean hasChain()
Applies several RowFilters to the data in sequence, progressively narrowing the results.
.google.bigtable.v2.RowFilter.Chain chain = 1;
Type | Description |
boolean | Whether the chain field is set. |
hasColumnQualifierRegexFilter()
public boolean hasColumnQualifierRegexFilter()
Matches only cells from columns whose qualifiers satisfy the given RE2
regex.
Note that, since column qualifiers can contain arbitrary bytes, the \C
escape sequence must be used if a true wildcard is desired. The .
character will not match the new line character \n
, which may be
present in a binary qualifier.
bytes column_qualifier_regex_filter = 6;
Type | Description |
boolean | Whether the columnQualifierRegexFilter field is set. |
hasColumnRangeFilter()
public boolean hasColumnRangeFilter()
Matches only cells from columns within the given range.
.google.bigtable.v2.ColumnRange column_range_filter = 7;
Type | Description |
boolean | Whether the columnRangeFilter field is set. |
hasCondition()
public boolean hasCondition()
Applies one of two possible RowFilters to the data based on the output of a predicate RowFilter.
.google.bigtable.v2.RowFilter.Condition condition = 3;
Type | Description |
boolean | Whether the condition field is set. |
hasFamilyNameRegexFilter()
public boolean hasFamilyNameRegexFilter()
Matches only cells from columns whose families satisfy the given RE2
regex. For technical reasons, the regex must not contain the :
character, even if it is not being used as a literal.
Note that, since column families cannot contain the new line character
\n
, it is sufficient to use .
as a full wildcard when matching
column family names.
string family_name_regex_filter = 5;
Type | Description |
boolean | Whether the familyNameRegexFilter field is set. |
hasInterleave()
public boolean hasInterleave()
Applies several RowFilters to the data in parallel and combines the results.
.google.bigtable.v2.RowFilter.Interleave interleave = 2;
Type | Description |
boolean | Whether the interleave field is set. |
hasPassAllFilter()
public boolean hasPassAllFilter()
Matches all cells, regardless of input. Functionally equivalent to
leaving filter
unset, but included for completeness.
bool pass_all_filter = 17;
Type | Description |
boolean | Whether the passAllFilter field is set. |
hasRowKeyRegexFilter()
public boolean hasRowKeyRegexFilter()
Matches only cells from rows whose keys satisfy the given RE2 regex. In
other words, passes through the entire row when the key matches, and
otherwise produces an empty row.
Note that, since row keys can contain arbitrary bytes, the \C
escape
sequence must be used if a true wildcard is desired. The .
character
will not match the new line character \n
, which may be present in a
binary key.
bytes row_key_regex_filter = 4;
Type | Description |
boolean | Whether the rowKeyRegexFilter field is set. |
hasRowSampleFilter()
public boolean hasRowSampleFilter()
Matches all cells from a row with probability p, and matches no cells from the row with probability 1-p.
double row_sample_filter = 14;
Type | Description |
boolean | Whether the rowSampleFilter field is set. |
hasSink()
public boolean hasSink()
ADVANCED USE ONLY.
Hook for introspection into the RowFilter. Outputs all cells directly to
the output of the read rather than to any parent filter. Consider the
following example:
Chain(
FamilyRegex("A"),
Interleave(
All(),
Chain(Label("foo"), Sink())
),
QualifierRegex("B")
)
A,A,1,w
A,B,2,x
B,B,4,z
|
FamilyRegex("A")
|
A,A,1,w
A,B,2,x
|
+------------+-------------+
| |
All() Label(foo)
| |
A,A,1,w A,A,1,w,labels:[foo]
A,B,2,x A,B,2,x,labels:[foo]
| |
| Sink() --------------+
| | |
+------------+ x------+ A,A,1,w,labels:[foo]
| A,B,2,x,labels:[foo]
A,A,1,w |
A,B,2,x |
| |
QualifierRegex("B") |
| |
A,B,2,x |
| |
+--------------------------------+
|
A,A,1,w,labels:[foo]
A,B,2,x,labels:[foo] // could be switched
A,B,2,x // could be switched
Despite being excluded by the qualifier filter, a copy of every cell
that reaches the sink is present in the final result.
As with an Interleave,
duplicate cells are possible, and appear in an unspecified mutual order.
In this case we have a duplicate with column "A:B" and timestamp 2,
because one copy passed through the all filter while the other was
passed through the label and sink. Note that one copy has label "foo",
while the other does not.
Cannot be used within the predicate_filter
, true_filter
, or
false_filter
of a Condition.
bool sink = 16;
Type | Description |
boolean | Whether the sink field is set. |
hasStripValueTransformer()
public boolean hasStripValueTransformer()
Replaces each cell's value with the empty string.
bool strip_value_transformer = 13;
Type | Description |
boolean | Whether the stripValueTransformer field is set. |
hasTimestampRangeFilter()
public boolean hasTimestampRangeFilter()
Matches only cells with timestamps within the given range.
.google.bigtable.v2.TimestampRange timestamp_range_filter = 8;
Type | Description |
boolean | Whether the timestampRangeFilter field is set. |
hasValueRangeFilter()
public boolean hasValueRangeFilter()
Matches only cells with values that fall within the given range.
.google.bigtable.v2.ValueRange value_range_filter = 15;
Type | Description |
boolean | Whether the valueRangeFilter field is set. |
hasValueRegexFilter()
public boolean hasValueRegexFilter()
Matches only cells with values that satisfy the given regular expression.
Note that, since cell values can contain arbitrary bytes, the \C
escape
sequence must be used if a true wildcard is desired. The .
character
will not match the new line character \n
, which may be present in a
binary value.
bytes value_regex_filter = 9;
Type | Description |
boolean | Whether the valueRegexFilter field is set. |
hashCode()
public int hashCode()
Type | Description |
int |
internalGetFieldAccessorTable()
protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Type | Description |
FieldAccessorTable |
isInitialized()
public final boolean isInitialized()
Type | Description |
boolean |
newBuilderForType()
public RowFilter.Builder newBuilderForType()
Type | Description |
RowFilter.Builder |
newBuilderForType(GeneratedMessageV3.BuilderParent parent)
protected RowFilter.Builder newBuilderForType(GeneratedMessageV3.BuilderParent parent)
Name | Description |
parent | BuilderParent |
Type | Description |
RowFilter.Builder |
newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
protected Object newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
Name | Description |
unused | UnusedPrivateParameter |
Type | Description |
Object |
toBuilder()
public RowFilter.Builder toBuilder()
Type | Description |
RowFilter.Builder |
writeTo(CodedOutputStream output)
public void writeTo(CodedOutputStream output)
Name | Description |
output | CodedOutputStream |
Type | Description |
IOException |