Skip to content

Add support for filtering based on incrementable values #177

@tseaver

Description

@tseaver

/cc @billyjacobson

Currently, the Python bigtable library support for filtering on numeric values expects raw bytes, e.g.:

from google.cloud.bigtable import row_filters

filter = row_filters.ValueRangeFilter(
    start_value=b'\x00\x00\x00\x00\x00\x00\x00\x01',  # 1
    end_value=b'\x00\x00\x00\x00\x00\x00\x00\x0a',  # 10
)

We already have support for writing "normal" integers, e.g.:

from google.cloud.bigtable import row_data

row = row_data.DirectRow(b'row-key')
row.set_cell('col-family', b'column', value=1)

where the integer 1 gets converted to b'\x00\x00\x00\x00\x00\x00\x00\x01' under the covers.

This feature request is to add similar support for filtering on values, e.g.:

from google.cloud.bigtable import row_filters

filter = row_filters.ValueRangeFilter(start_value=1, end_value=10)

While we are at it, add an ExactValueFilter wrapper around `` (for parity with other languages), e.g..

from google.cloud.bigtable import row_filters

filter = row_filters.ExactValueFilter(value=1)

which would map to (for integer values):

filter = row_filters.ValueRegexFilter(b'\x00\x00\x00\x00\x00\x00\x00\x01')

Metadata

Metadata

Assignees

Labels

api: bigtableIssues related to the googleapis/python-bigtable API.type: feature request‘Nice-to-have’ improvement, new feature or different behavior or design.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions