You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "michael-s-molina (via GitHub)" <gi...@apache.org> on 2026/04/23 14:33:54 UTC
[PR] fix(jinja): drill-to-detail respects remove_filter=True in Jinja templates [superset]
michael-s-molina opened a new pull request, #39594:
URL: https://github.com/apache/superset/pull/39594
### SUMMARY
When a dataset's Jinja template uses `filter_values(column, remove_filter=True)` or `get_filters(column, remove_filter=True)` to intercept a filter and push it into the inner query, the aggregated chart query works correctly — the filter is removed from the outer `WHERE` clause and handled entirely by the template.
However, the drill-to-detail query for the same chart returned incorrect (often empty) results, because the Jinja template did **not** intercept the filter there.
#### Root cause
`ExtraCache.get_filters` reads filters exclusively from `adhoc_filters` via `get_form_data()`. Aggregated chart requests (`POST /api/v1/chart/data`) include filters in adhoc format inside `queries[0].adhoc_filters`, so `get_form_data()` finds
them. Drill-to-detail requests (`POST /api/v1/datasource/.../samples`) send filters in native `{col, op, val}` format at the top level — `get_form_data()` finds nothing, `removed_filters` is never populated, and the filter ends up in the outer `WHERE` clause instead of being handled by the template.
### TESTING INSTRUCTIONS
Added unit tests to `tests/unit_tests/jinja_context_test.py`.
### ADDITIONAL INFORMATION
<!--- Check any relevant boxes with "x" -->
<!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue -->
- [ ] Has associated issue:
- [ ] Required feature flags:
- [ ] Changes UI
- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))
- [ ] Migration is atomic, supports rollback & is backwards-compatible
- [ ] Confirm DB migration upgrade and downgrade tested
- [ ] Runtime estimates and downtime expectations provided
- [ ] Introduces new feature or API
- [ ] Removes existing feature or API
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(jinja): drill-to-detail respects remove_filter=True in Jinja templates [superset]
Posted by "codecov[bot] (via GitHub)" <gi...@apache.org>.
codecov[bot] commented on PR #39594:
URL: https://github.com/apache/superset/pull/39594#issuecomment-4305377451
## [Codecov](https://app.codecov.io/gh/apache/superset/pull/39594?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
:x: Patch coverage is `10.52632%` with `17 lines` in your changes missing coverage. Please review.
:white_check_mark: Project coverage is 54.71%. Comparing base ([`d62f154`](https://app.codecov.io/gh/apache/superset/commit/d62f1546aa450bc74821a229edf0ad562d13d6a9?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`2f87ffd`](https://app.codecov.io/gh/apache/superset/commit/2f87ffddaea6dde9d5b84d3caacb80efaa5f38ae?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
:warning: Report is 1 commits behind head on master.
| [Files with missing lines](https://app.codecov.io/gh/apache/superset/pull/39594?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Patch % | Lines |
|---|---|---|
| [superset/jinja\_context.py](https://app.codecov.io/gh/apache/superset/pull/39594?src=pr&el=tree&filepath=superset%2Fjinja_context.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VwZXJzZXQvamluamFfY29udGV4dC5weQ==) | 10.52% | [17 Missing :warning: ](https://app.codecov.io/gh/apache/superset/pull/39594?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
<details><summary>Additional details and impacted files</summary>
```diff
@@ Coverage Diff @@
## master #39594 +/- ##
==========================================
- Coverage 64.58% 54.71% -9.88%
==========================================
Files 2564 2564
Lines 133576 133595 +19
Branches 31033 31039 +6
==========================================
- Hits 86271 73094 -13177
- Misses 45813 60167 +14354
+ Partials 1492 334 -1158
```
| [Flag](https://app.codecov.io/gh/apache/superset/pull/39594/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | |
|---|---|---|
| [hive](https://app.codecov.io/gh/apache/superset/pull/39594/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `39.87% <10.52%> (-0.01%)` | :arrow_down: |
| [mysql](https://app.codecov.io/gh/apache/superset/pull/39594/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [postgres](https://app.codecov.io/gh/apache/superset/pull/39594/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [presto](https://app.codecov.io/gh/apache/superset/pull/39594/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [python](https://app.codecov.io/gh/apache/superset/pull/39594/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `39.87% <10.52%> (-22.24%)` | :arrow_down: |
| [sqlite](https://app.codecov.io/gh/apache/superset/pull/39594/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [unit](https://app.codecov.io/gh/apache/superset/pull/39594/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#carryforward-flags-in-the-pull-request-comment) to find out more.
</details>
[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/superset/pull/39594?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
<details><summary> :rocket: New features to boost your workflow: </summary>
- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</details>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(jinja): drill-to-detail respects remove_filter=True in Jinja templates [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #39594:
URL: https://github.com/apache/superset/pull/39594#issuecomment-4305340811
<!-- Bito Reply -->
The flagged issue is correct: the `_get_filters_from_query_context` method skips filters where `val` is `None`, but unary null operators like `IS NULL` and `IS NOT NULL` are represented without a `val` (or with `val: null`), so they are ignored. This prevents `get_filters` from returning them and blocks `remove_filter=True` from intercepting them in drill-to-detail paths.
To resolve, update the method to treat filters with `op` in `{FilterOperator.IS_NULL, FilterOperator.IS_NOT_NULL}` as valid even when `val` is `None` or missing. Move the `op` assignment before the check and modify the condition accordingly. Add unit tests for these operators with `val: null` or omitted.
No other comments found in the PR.
**superset/jinja_context.py**
```
def _get_filters_from_query_context(
self, column: str, remove_filter: bool
) -> list[Filter]:
filters: list[Filter] = []
for flt in self.query_context_filters:
col = flt.get("col")
op = (flt.get("op") or FilterOperator.IN).upper()
val = flt.get("val")
if col != column or (val is None and op not in (FilterOperator.IS_NULL.upper(), FilterOperator.IS_NOT_NULL.upper())):
continue
if op in (
FilterOperator.IN,
FilterOperator.NOT_IN,
) and not isinstance(val, list):
val = [val]
if remove_filter and column not in self.removed_filters:
self.removed_filters.append(column)
if column not in self.applied_filters:
self.applied_filters.append(column)
filters.append({"op": op, "col": column, "val": val})
return filters
```
**tests/unit_tests/jinja_context_test.py**
```
def test_get_filters_query_context_filters_is_null() -> None:
cache = ExtraCache(
query_context_filters=[{"col": "name", "op": "IS_NULL"}]
)
assert cache.get_filters("name") == [
{"op": "IS_NULL", "col": "name", "val": None}
]
def test_get_filters_query_context_filters_is_not_null() -> None:
cache = ExtraCache(
query_context_filters=[{"col": "name", "op": "IS_NOT_NULL"}]
)
assert cache.get_filters("name") == [
{"op": "IS_NOT_NULL", "col": "name", "val": None}
]
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(jinja): drill-to-detail respects remove_filter=True in Jinja templates [superset]
Posted by "michael-s-molina (via GitHub)" <gi...@apache.org>.
michael-s-molina merged PR #39594:
URL: https://github.com/apache/superset/pull/39594
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(jinja): drill-to-detail respects remove_filter=True in Jinja templates [superset]
Posted by "codeant-ai-for-open-source[bot] (via GitHub)" <gi...@apache.org>.
codeant-ai-for-open-source[bot] commented on code in PR #39594:
URL: https://github.com/apache/superset/pull/39594#discussion_r3131624913
##########
superset/jinja_context.py:
##########
@@ -444,6 +446,37 @@ def get_filters(self, column: str, remove_filter: bool = False) -> list[Filter]:
filters.append({"op": op, "col": column, "val": val})
+ # Drill-to-detail queries send filters in native {col, op, val} format
+ # rather than adhoc_filters, so get_form_data() above finds nothing.
+ # query_context_filters carries those native filters from
+ # template_kwargs["filter"], already available in the Jinja context.
+ # Only consult them when adhoc_filters produced no match to avoid
+ # duplicating entries for aggregated queries where both formats exist.
+ if not filters:
+ filters = self._get_filters_from_query_context(column, remove_filter)
+
+ return filters
+
+ def _get_filters_from_query_context(
+ self, column: str, remove_filter: bool
+ ) -> list[Filter]:
+ filters: list[Filter] = []
+ for flt in self.query_context_filters:
+ col = flt.get("col")
+ val = flt.get("val")
+ if col != column or val is None:
+ continue
+ op = (flt.get("op") or FilterOperator.IN).upper()
Review Comment:
**🟠 Architect Review — HIGH**
The drill-to-detail fallback in `_get_filters_from_query_context` ignores native filters whose `val` is `None` or omitted, so unary null operators like `IS NULL`/`IS NOT NULL` (which are represented without a `val`) are never returned by `get_filters`, and `remove_filter=True` cannot intercept/remove these filters for the drill-to-detail path.
**Suggestion:** Update `_get_filters_from_query_context` to mirror the adhoc-filter logic by treating filters with `op` in `{FilterOperator.IS_NULL, FilterOperator.IS_NOT_NULL}` as valid even when `val` is `None` or missing, and only skip truly invalid entries. Add unit tests for `query_context_filters` with `op: "IS NULL"`/`"IS NOT NULL"` and `val: null`/no `val` to lock in the behavior.
[Fix in Cursor](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt=This%20is%20an%20%2A%2AArchitect%20%2F%20Logical%20Review%2A%2A%20comment%20left%20during%20a%20code%20review.%20These%20reviews%20are%20first-class%2C%20important%20findings%20%E2%80%94%20not%20optional%20suggestions.%20Do%20NOT%20dismiss%20this%20as%20a%20%27big%20architectural%20change%27%20just%20because%20the%20title%20says%20architect%20review%3B%20most%20of%20these%20can%20be%20resolved%20with%20a%20small%2C%20localized%20fix%20once%20the%20intent%20is%20understood.%0A%0A%2A%2APath%3A%2A%2A%20superset%2Fjinja_context.py%0A%2A%2ALine%3A%2A%2A%20467%3A469%0A%2A%2AComment%3A%2A%2A%0A%09%2AHIGH%3A%20The%20drill-to-detail%20fallback%20in%20%60_get_filters_from_query_context%60%20ignores%20native%20filters%20whose%20%60val%60%20is%20%60None%60%20or%20omitted%2C%20so%20unary%20null%20operators%20like%20%60IS%20NULL%60%2F%60IS%20NOT%20NULL%60%20%28which%20are%20represented%20without%20a%20%60val%60%29%20are%20neve
r%20returned%20by%20%60get_filters%60%2C%20and%20%60remove_filter%3DTrue%60%20cannot%20intercept%2Fremove%20these%20filters%20for%20the%20drill-to-detail%20path.%0A%0AValidate%20the%20correctness%20of%20the%20flagged%20issue.%20If%20correct%2C%20How%20can%20I%20resolve%20this%3F%20If%20you%20propose%20a%20fix%2C%20implement%20it%20and%20please%20make%20it%20concise.%0AIf%20a%20suggested%20approach%20is%20provided%20above%2C%20use%20it%20as%20the%20authoritative%20instruction.%20If%20no%20explicit%20code%20suggestion%20is%20given%2C%20you%20MUST%20still%20draft%20and%20apply%20your%20own%20minimal%2C%20localized%20fix%20%E2%80%94%20do%20not%20punt%20back%20with%20%27no%20suggestion%20provided%2C%20review%20manually%27.%20Keep%20the%20change%20as%20small%20as%20possible%3A%20add%20a%20guard%20clause%2C%20gate%20on%20a%20loading%20state%2C%20reorder%20an%20await%2C%20wrap%20in%20a%20conditional%2C%20etc.%20Do%20not%20refactor%20surrounding%20code%20or%20expand%20scope%20beyond%20the%20
finding.%0AOnce%20fix%20is%20implemented%2C%20also%20check%20other%20comments%20on%20the%20same%20PR%2C%20and%20ask%20user%20if%20the%20user%20wants%20to%20fix%20the%20rest%20of%20the%20comments%20as%20well.%20if%20said%20yes%2C%20then%20fetch%20all%20the%20comments%20validate%20the%20correctness%20and%20implement%20a%20minimal%20fix%0A) | [Fix in VSCode Claude](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt=This%20is%20an%20%2A%2AArchitect%20%2F%20Logical%20Review%2A%2A%20comment%20left%20during%20a%20code%20review.%20These%20reviews%20are%20first-class%2C%20important%20findings%20%E2%80%94%20not%20optional%20suggestions.%20Do%20NOT%20dismiss%20this%20as%20a%20%27big%20architectural%20change%27%20just%20because%20the%20title%20says%20architect%20review%3B%20most%20of%20these%20can%20be%20resolved%20with%20a%20small%2C%20localized%20fix%20once%20the%20intent%20is%20understood.%0A%0A%2A%2APath%3A%2A%2A%20superset%2Fjinja_context.py%0A%2A%2ALine%3A%2A%2A%20467%3A469%0A%2A
%2AComment%3A%2A%2A%0A%09%2AHIGH%3A%20The%20drill-to-detail%20fallback%20in%20%60_get_filters_from_query_context%60%20ignores%20native%20filters%20whose%20%60val%60%20is%20%60None%60%20or%20omitted%2C%20so%20unary%20null%20operators%20like%20%60IS%20NULL%60%2F%60IS%20NOT%20NULL%60%20%28which%20are%20represented%20without%20a%20%60val%60%29%20are%20never%20returned%20by%20%60get_filters%60%2C%20and%20%60remove_filter%3DTrue%60%20cannot%20intercept%2Fremove%20these%20filters%20for%20the%20drill-to-detail%20path.%0A%0AValidate%20the%20correctness%20of%20the%20flagged%20issue.%20If%20correct%2C%20How%20can%20I%20resolve%20this%3F%20If%20you%20propose%20a%20fix%2C%20implement%20it%20and%20please%20make%20it%20concise.%0AIf%20a%20suggested%20approach%20is%20provided%20above%2C%20use%20it%20as%20the%20authoritative%20instruction.%20If%20no%20explicit%20code%20suggestion%20is%20given%2C%20you%20MUST%20still%20draft%20and%20apply%20your%20own%20minimal%2C%20localized%20fix%20%E2%80%94%20do%2
0not%20punt%20back%20with%20%27no%20suggestion%20provided%2C%20review%20manually%27.%20Keep%20the%20change%20as%20small%20as%20possible%3A%20add%20a%20guard%20clause%2C%20gate%20on%20a%20loading%20state%2C%20reorder%20an%20await%2C%20wrap%20in%20a%20conditional%2C%20etc.%20Do%20not%20refactor%20surrounding%20code%20or%20expand%20scope%20beyond%20the%20finding.%0AOnce%20fix%20is%20implemented%2C%20also%20check%20other%20comments%20on%20the%20same%20PR%2C%20and%20ask%20user%20if%20the%20user%20wants%20to%20fix%20the%20rest%20of%20the%20comments%20as%20well.%20if%20said%20yes%2C%20then%20fetch%20all%20the%20comments%20validate%20the%20correctness%20and%20implement%20a%20minimal%20fix%0A)
*(Use Cmd/Ctrl + Click for best experience)*
<details>
<summary><b>Prompt for AI Agent 🤖 </b></summary>
```mdx
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.
**Path:** superset/jinja_context.py
**Line:** 467:469
**Comment:**
*HIGH: The drill-to-detail fallback in `_get_filters_from_query_context` ignores native filters whose `val` is `None` or omitted, so unary null operators like `IS NULL`/`IS NOT NULL` (which are represented without a `val`) are never returned by `get_filters`, and `remove_filter=True` cannot intercept/remove these filters for the drill-to-detail path.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
```
</details>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(jinja): drill-to-detail respects remove_filter=True in Jinja templates [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #39594:
URL: https://github.com/apache/superset/pull/39594#issuecomment-4306009638
AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
<details>
<summary>
Bito Usage Guide
</summary>
**Commands**
Type the following command in the pull request comment and save the comment.
- `/review` - Manually triggers a full AI review.
- `/pause` - Pauses automatic reviews on this pull request.
- `/resume` - Resumes automatic reviews.
- `/resolve` - Marks all Bito-posted review comments as resolved.
- `/abort` - Cancels all in-progress reviews.
Refer to the <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
**Configuration**
This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
**Documentation & Help**
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
</details>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(jinja): drill-to-detail respects remove_filter=True in Jinja templates [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #39594:
URL: https://github.com/apache/superset/pull/39594#issuecomment-4305285178
AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org