databrickslabs / databrickslabs/impulse

Apply solver_config.channels.filters when reading the channels table

Open
#103 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
25
Forks
12
Avg merge
1d 5h
Merged PRs (30d)
13

Description

Context

SolverConfig.channels is a TableConfig, so it already accepts a filters dict (solver_config.py:145, with TableConfig.filters at :61). The solver never reads it. When the channels table is loaded, only channels.column_name_mapping is applied (default_solver.py:1138); self.config.channels.filters is consumed nowhere in the engine. A user can set channel filters in config today and they are silently dropped.

By contrast, container_tags, container_metrics, and channel_mapping do apply their .filters at read time (default_solver.py:317, query_solver.py:79, default_solver.py:644) as equality predicates over filters.items().

Proposal

Apply channels.filters when the channels table is read, reusing the same equality-filter mechanism as the other tables. Filter keys reference internal column names (after column_name_mapping), consistent with the existing tables.

Scope

Channels table only for now. Do not wire up channel_tags, channel_metrics, or poi_channels filters in this issue. They are also currently accepted but ignored; track separately if wanted.

Acceptance criteria

  • Reading the channels table applies each channels.filters entry as an equality filter, after column_name_mapping.
  • No filters configured leaves current behavior unchanged.
  • A test configures a channels filter that removes rows and asserts on real filtered values (not just row counts).
  • configuration.md notes that channels-table filters are supported.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in default_solver.py:1138, then compare the existing equality-filter handling at default_solver.py:317, query_solver.py:79, and default_solver.py:644. Trace channels configuration from solver_config.py:145 and TableConfig.filters at :61, add a test with real filtered values, and update configuration.md. Done means channels.filters is applied after column_name_mapping while no-filter behavior remains unchanged.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, spark
Domain
data-engineering
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.