googleapis / googleapis/google-cloud-python
google-cloud-bigtable: ValueBitmaskFilter support for data client
- 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
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