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][google.bigtable.v2.RowFilter.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][google.bigtable.v2.RowFilter.Condition].
bool sink = 16;