googleapis / googleapis/google-cloud-python

google-cloud-bigtable: ValueBitmaskFilter support for data client

Aberta
#17,255 1 comentário 0 reações 0 responsáveis Ver no GitHub
api: bigtable priority: p3 type: feature request
Linguagem predominante
Python
Estrelas
5.4k
Forks
1.8k
Merge médio
2d 23h
PRs com merge (30d)
123

Descrição

### Determine this is the right repository

- [x] I determined this is the correct repository in which to report this bug.

### Summary of the issue

**Context**
We're on google-cloud-bigtable 2.38.0 using `BigtableDataClient` (the data client). We wanted to use the new `value_bitmask_filter` row filter (added to the `RowFilter` proto in 2.38) as part of a `ConditionalRowFilter` chain for a server-side bloom-filter prefilter.

**Expected Behavior:**
`google.cloud.bigtable.data.row_filters` exposes a `ValueBitmaskFilter` class that subclasses the data-client `RowFilter` ABC, so it composes into `RowFilterChain` / `ConditionalRowFilter` alongside the other data-client filters — matching the `ValueBitmaskFilter` that already exists in the legacy `google.cloud.bigtable.row_filters` module.

**Actual Behavior:**
`google.cloud.bigtable.data.row_filters` has no `ValueBitmaskFilter`. The legacy module's wrapper can't be used because it subclasses a different `RowFilter` base (`to_pb()` vs the data client's `_to_dict()`/`_to_pb()`), so it doesn't compose into data-client filter chains. We worked around it with a local `RowFilter` subclass overriding `_to_dict()` to return `{"value_bitmask_filter": data_v2_pb2.ValueBitmask(mask=...)}`, which works fine — but it'd be nice to have parity in the data-client module.

### API client name and version

google-cloud-bigtable 2.38

### Reproduction steps: code

n/a

### Reproduction steps: supporting files

_No response_

### Reproduction steps: actual results

_No response_

### Reproduction steps: expected results

_No response_

### OS & version + platform

_No response_

### Python environment

python 3.14

### Python dependencies

_No response_

### Additional context

_No response_

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Comece em google.cloud.bigtable.data.row_filters e compare sua interface RowFilter com o ValueBitmaskFilter existente em google.cloud.bigtable.row_filters. Verifique se o filtro do cliente de dados serializa a máscara solicitada e pode ser composto com RowFilterChain e ConditionalRowFilter; a issue estará concluída quando os usuários do cliente de dados puderem usar ValueBitmaskFilter sem o wrapper legado.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
google-cloud, python
Domínio
databases
Tipo de issue
Bug
Dificuldade
2/5
Tempo estimado
1-3 horas
Status de atividade
Pouca atividade
Clareza
Razoavelmente clara
Facilidade para iniciantes
52/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.