Filter Format and Arguments

Filters are specified in the Thrift Filter Language and are in this format: FilterName (argument, argument,... , argument). Arguments that represent strings are enclosed in single quotation marks (‘). Arguments that represent booleans, integers, or comparison operators (<, <=, =, !=, >, >=) are not enclosed in single quotation marks.

Binary Operators

You can combine filters by using the binary operators AND and OR. For example, PrefixFilter ('Row') AND PageFilter (1) AND FirstKeyOnlyFilter () returns all key-value pairs that match the following conditions:

  • The row containing the key-value must start with the prefix "Row".

  • The key-value must be located in the first row of the table.

  • The key-value must be the first key-value pair in the row.

For another example, (RowFilter (=, 'binary:Row 1') AND TimeStampsFilter (74689, 89734)) OR ColumnRangeFilter ('abc', true, 'xyz', false)) returns all key-value pairs that

Match both of the following conditions:

  • The key-value is in a row for which the row key is "Row 1".

  • The key-value has a timestamp of either 74689 or 89734.

Or match this condition:

  • The key-value is located in a column that is lexicographically greater than or equal to "abc" and less than "xyz".

Unary Operators

You can also use the following unary operators with filters:

SKIP

For a particular row, if any of the key-values don’t pass the filter condition, the entire row is skipped.

For example, SKIP ValueFilter (0) omits rows in which any values are not 0.

WHILE

Rows are tested in order against the filter condition. Rows that meed the condition are included in the result set. When a row fails to meet the condition, filter processing stops and no more rows are tested.