You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "betodealmeida (via GitHub)" <gi...@apache.org> on 2026/04/28 15:32:40 UTC
[PR] feat(semantic layers): dashboard filters [superset]
betodealmeida opened a new pull request, #39728:
URL: https://github.com/apache/superset/pull/39728
<!---
Please write the PR title following the conventions at https://www.conventionalcommits.org/en/v1.0.0/
Example:
fix(dashboard): load charts correctly
-->
### SUMMARY
<!--- Describe the change below, including rationale and design decisions -->
Add support for dashboard filters on semantic views.
### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
<!--- Skip this if not applicable -->
<img width="1728" height="1080" alt="Screenshot 2026-04-28 at 11 32 08 AM" src="https://github.com/user-attachments/assets/162b0343-c546-4f4f-83bc-34370f7c94f7" />
<img width="1728" height="1080" alt="Screenshot 2026-04-28 at 11 32 19 AM" src="https://github.com/user-attachments/assets/f044f1f4-ba73-4a8e-b774-1a968a03176b" />
### TESTING INSTRUCTIONS
<!--- Required! What steps can be taken to manually verify the changes? -->
### 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] feat(semantic layers): dashboard filters [superset]
Posted by "betodealmeida (via GitHub)" <gi...@apache.org>.
betodealmeida merged PR #39728:
URL: https://github.com/apache/superset/pull/39728
--
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] feat(semantic layers): dashboard filters [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #39728:
URL: https://github.com/apache/superset/pull/39728#issuecomment-4336824767
<!-- Bito Reply -->
The race condition issue is valid. When users switch datasets quickly, multiple async requests can be in flight simultaneously. The last request to resolve will overwrite state with potentially stale data. I've implemented a fix using a request ID guard to ensure only the most recent request updates the state.
**superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx**
```
const datasetFetchRef = useRef(0);
useEffect(() => {
if (datasetId) {
const currentRequestId = ++datasetFetchRef.current;
if (datasourceType === 'semantic_view') {
cachedSupersetGet({
endpoint: `/api/v1/semantic_view/${datasetId}/structure`,
})
.then((response: JsonResponse) => {
if (currentRequestId !== datasetFetchRef.current) return; // Ignore stale responses
const {
name: svName,
dimensions = [],
metrics: svMetrics = [],
} = response.json?.result ?? {};
const columns = dimensions.map(
(dim: { name: string; type: string }) => {
const mappedType = mapSemanticTypeToGenericDataType(dim.type);
return {
column_name: dim.name,
type: dim.type,
is_dttm: mappedType === GenericDataType.Temporal,
filterable: true,
type_generic: mappedType,
};
},
);
const mappedMetrics = svMetrics.map(
(m: { name: string; definition: string }) => ({
metric_name: m.name,
expression: m.definition,
verbose_name: null,
}),
);
setMetrics(mappedMetrics);
setDatasetDetails({
columns,
metrics: mappedMetrics,
datasource_type: 'semantic_view',
type: 'semantic_view',
filter_select: true,
filter_select_enabled: true,
time_grain_sqla: [],
main_dttm_col: null,
id: datasetId,
table_name: svName,
});
})
.catch((response: SupersetApiError) => {
if (currentRequestId !== datasetFetchRef.current) return; // Ignore stale responses
addDangerToast(response.message);
});
} else {
cachedSupersetGet({
endpoint: `/api/v1/dataset/${datasetId}?q=${rison.encode({
columns: [
'columns.column_name',
'columns.expression',
'columns.filterable',
'columns.is_dttm',
'columns.type',
'columns.type_generic',
'columns.verbose_name',
'database.id',
'database.database_name',
'datasource_type',
'filter_select_enabled',
'id',
'is_sqllab_view',
'main_dttm_col',
'metrics.metric_name',
'metrics.verbose_name',
'schema',
'sql',
'table_name',
'time_grain_sqla',
],
})}`,
})
.then((response: JsonResponse) => {
if (currentRequestId !== datasetFetchRef.current) return; // Ignore stale responses
setMetrics(response.json?.result?.metrics);
const dataset = response.json?.result;
// modify the response to fit structure expected by AdhocFilterControl
dataset.type = dataset.datasource_type;
dataset.filter_select = true;
setDatasetDetails(dataset);
})
.catch((response: SupersetApiError) => {
if (currentRequestId !== datasetFetchRef.current) return; // Ignore stale responses
addDangerToast(response.message);
});
}
}
}, [datasetId, datasourceType]);
```
--
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] feat(semantic layers): dashboard filters [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 #39728:
URL: https://github.com/apache/superset/pull/39728#discussion_r3155378703
##########
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:
##########
@@ -743,45 +760,93 @@ const FiltersConfigForm = (
useEffect(() => {
if (datasetId) {
- cachedSupersetGet({
- endpoint: `/api/v1/dataset/${datasetId}?q=${rison.encode({
- columns: [
- 'columns.column_name',
- 'columns.expression',
- 'columns.filterable',
- 'columns.is_dttm',
- 'columns.type',
- 'columns.type_generic',
- 'columns.verbose_name',
- 'database.id',
- 'database.database_name',
- 'datasource_type',
- 'filter_select_enabled',
- 'id',
- 'is_sqllab_view',
- 'main_dttm_col',
- 'metrics.metric_name',
- 'metrics.verbose_name',
- 'schema',
- 'sql',
- 'table_name',
- 'time_grain_sqla',
- ],
- })}`,
- })
- .then((response: JsonResponse) => {
- setMetrics(response.json?.result?.metrics);
- const dataset = response.json?.result;
- // modify the response to fit structure expected by AdhocFilterControl
- dataset.type = dataset.datasource_type;
- dataset.filter_select = true;
- setDatasetDetails(dataset);
+ if (datasourceType === 'semantic_view') {
+ cachedSupersetGet({
+ endpoint: `/api/v1/semantic_view/${datasetId}/structure`,
})
- .catch((response: SupersetApiError) => {
- addDangerToast(response.message);
- });
+ .then((response: JsonResponse) => {
+ const {
+ name: svName,
+ dimensions = [],
+ metrics: svMetrics = [],
+ } = response.json?.result ?? {};
+ const columns = dimensions.map(
+ (dim: { name: string; type: string }) => {
+ const mappedType = mapSemanticTypeToGenericDataType(dim.type);
+ return {
+ column_name: dim.name,
+ type: dim.type,
+ is_dttm: mappedType === GenericDataType.Temporal,
+ filterable: true,
+ type_generic: mappedType,
+ };
+ },
+ );
+ const mappedMetrics = svMetrics.map(
+ (m: { name: string; definition: string }) => ({
+ metric_name: m.name,
+ expression: m.definition,
+ verbose_name: null,
+ }),
+ );
+ setMetrics(mappedMetrics);
+ setDatasetDetails({
+ columns,
+ metrics: mappedMetrics,
+ datasource_type: 'semantic_view',
+ type: 'semantic_view',
+ filter_select: true,
+ filter_select_enabled: true,
+ time_grain_sqla: [],
+ main_dttm_col: null,
+ id: datasetId,
+ table_name: svName,
+ });
+ })
+ .catch((response: SupersetApiError) => {
+ addDangerToast(response.message);
+ });
Review Comment:
**Suggestion:** This async datasource-loading effect has a race condition: if users switch dataset/type quickly, an older request can resolve after a newer one and overwrite `datasetDetails`/`metrics` with stale data. Add request cancellation or a "latest request" guard in the effect cleanup so only the most recent response updates state. [race condition]
<details>
<summary><b>Severity Level:</b> Major ⚠️</summary>
```mdx
- ❌ Native filter modal may show columns from wrong datasource.
- ⚠️ AdhocFilterControl may use stale dimensions and metrics.
- ⚠️ Time column selector can mismatch selected semantic view.
```
</details>
<details>
<summary><b>Steps of Reproduction ✅ </b></summary>
```mdx
1. Open any dashboard and click the native filters configuration button to open
`FiltersConfigModal` (component at
`superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx:200-319`),
which renders `FiltersConfigForm` for the currently selected filter (default export at
`FiltersConfigForm.tsx:2058-2062`).
2. In the modal, select a dataset in the dataset dropdown rendered from `<DatasetSelect>`
inside `FiltersConfigForm` at `FiltersConfigForm.tsx:1133-1199`; this populates
`formFilter.dataset` and `formFilter.datasourceType` via `setNativeFilterFieldValues` in
the `onChange` handler at `FiltersConfigForm.tsx:1183-1193`.
3. The selection causes `datasetId` (`getDatasetId()` at `FiltersConfigForm.tsx:393-410`)
and `datasourceType` (`getDatasourceType()` at `FiltersConfigForm.tsx:412-422`) to update,
triggering the `useEffect` at `FiltersConfigForm.tsx:761-849`, which calls
`cachedSupersetGet` for the current datasource; first pick dataset A, then quickly switch
to dataset B (or table ↔ semantic_view) so that two requests are in flight concurrently.
4. On a slow or throttled network, allow the request for dataset A (older selection) to
resolve after the request for dataset B; because there is no cancellation or "latest
request" guard around the `cachedSupersetGet(...).then(...)` blocks at
`FiltersConfigForm.tsx:764-805` and `FiltersConfigForm.tsx:810-843`, the stale callback
still invokes `setMetrics` and `setDatasetDetails`, overwriting state so
`datasetDetails`/`metrics` no longer match the currently selected dataset; this affects
downstream consumers like `ColumnSelect` (time column selector at
`FiltersConfigForm.tsx:946-963`) and `AdhocFilterControl` (pre-filter configuration at
`FiltersConfigForm.tsx:1308-1318`) which rely on `datasetDetails.columns` and
`datasetDetails.metrics`.
```
</details>
[Fix in Cursor](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt=This%20is%20a%20comment%20left%20during%20a%20code%20review.%0A%0A%2A%2APath%3A%2A%2A%20superset-frontend%2Fsrc%2Fdashboard%2Fcomponents%2FnativeFilters%2FFiltersConfigModal%2FFiltersConfigForm%2FFiltersConfigForm.tsx%0A%2A%2ALine%3A%2A%2A%20764%3A808%0A%2A%2AComment%3A%2A%2A%0A%09%2ARace%20Condition%3A%20This%20async%20datasource-loading%20effect%20has%20a%20race%20condition%3A%20if%20users%20switch%20dataset%2Ftype%20quickly%2C%20an%20older%20request%20can%20resolve%20after%20a%20newer%20one%20and%20overwrite%20%60datasetDetails%60%2F%60metrics%60%20with%20stale%20data.%20Add%20request%20cancellation%20or%20a%20%22latest%20request%22%20guard%20in%20the%20effect%20cleanup%20so%20only%20the%20most%20recent%20response%20updates%20state.%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%20ple
ase%20make%20it%20concise.%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%20a%20comment%20left%20during%20a%20code%20review.%0A%0A%2A%2APath%3A%2A%2A%20superset-frontend%2Fsrc%2Fdashboard%2Fcomponents%2FnativeFilters%2FFiltersConfigModal%2FFiltersConfigForm%2FFiltersConfigForm.tsx%0A%2A%2ALine%3A%2A%2A%20764%3A808%0A%2A%2AComment%3A%2A%2A%0A%09%2ARace%20Condition%3A%20This%20async%20datasource-loading%20effect%20has%20a%20race%20condition%3A%20if%20users%20switch%20dataset%2Ftype%20quickly%2C%20an%20older%20request%20can%20resolve%20after%20a%20newer%20one%20and%20overwrite%20%60datasetDetails%60%2F%60metrics%6
0%20with%20stale%20data.%20Add%20request%20cancellation%20or%20a%20%22latest%20request%22%20guard%20in%20the%20effect%20cleanup%20so%20only%20the%20most%20recent%20response%20updates%20state.%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.%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 a comment left during a code review.
**Path:** superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx
**Line:** 764:808
**Comment:**
*Race Condition: This async datasource-loading effect has a race condition: if users switch dataset/type quickly, an older request can resolve after a newer one and overwrite `datasetDetails`/`metrics` with stale data. Add request cancellation or a "latest request" guard in the effect cleanup so only the most recent response updates state.
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.
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>
<a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F39728&comment_hash=70498297742a3e07178bfa293c42c7bed1c06102f2cf04e64996daf929f86a04&reaction=like'>👍</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F39728&comment_hash=70498297742a3e07178bfa293c42c7bed1c06102f2cf04e64996daf929f86a04&reaction=dislike'>👎</a>
--
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] feat(semantic layers): dashboard filters [superset]
Posted by "netlify[bot] (via GitHub)" <gi...@apache.org>.
netlify[bot] commented on PR #39728:
URL: https://github.com/apache/superset/pull/39728#issuecomment-4336793319
### <span aria-hidden="true">✅</span> Deploy Preview for *superset-docs-preview* ready!
| Name | Link |
|:-:|------------------------|
|<span aria-hidden="true">🔨</span> Latest commit | da85dc680bd0e0a98f62feeeb311fd8ebb4d7f9b |
|<span aria-hidden="true">🔍</span> Latest deploy log | https://app.netlify.com/projects/superset-docs-preview/deploys/69f0d31a23c0ce00081e15a0 |
|<span aria-hidden="true">😎</span> Deploy Preview | [https://deploy-preview-39728--superset-docs-preview.netlify.app](https://deploy-preview-39728--superset-docs-preview.netlify.app) |
|<span aria-hidden="true">📱</span> Preview on mobile | <details><summary> Toggle QR Code... </summary><br /><br /><br /><br />_Use your smartphone camera to open QR code link._</details> |
---
<!-- [superset-docs-preview Preview](https://deploy-preview-39728--superset-docs-preview.netlify.app) -->
_To edit notification comments on pull requests, go to your [Netlify project configuration](https://app.netlify.com/projects/superset-docs-preview/configuration/notifications#deploy-notifications)._
--
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] feat(semantic layers): dashboard filters [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #39728:
URL: https://github.com/apache/superset/pull/39728#issuecomment-4336754724
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
Re: [PR] feat(semantic layers): dashboard filters [superset]
Posted by "codecov[bot] (via GitHub)" <gi...@apache.org>.
codecov[bot] commented on PR #39728:
URL: https://github.com/apache/superset/pull/39728#issuecomment-4337001123
## [Codecov](https://app.codecov.io/gh/apache/superset/pull/39728?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 `0%` with `2 lines` in your changes missing coverage. Please review.
:warning: Please [upload](https://docs.codecov.com/docs/codecov-uploader) report for BASE (`semantic-layer-extension@cfb35d0`). [Learn more](https://docs.codecov.io/docs/error-reference?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#section-missing-base-commit) about missing BASE report.
| [Files with missing lines](https://app.codecov.io/gh/apache/superset/pull/39728?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/semantic\_layers/api.py](https://app.codecov.io/gh/apache/superset/pull/39728?src=pr&el=tree&filepath=superset%2Fsemantic_layers%2Fapi.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VwZXJzZXQvc2VtYW50aWNfbGF5ZXJzL2FwaS5weQ==) | 0.00% | [1 Missing :warning: ](https://app.codecov.io/gh/apache/superset/pull/39728?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [superset/semantic\_layers/mapper.py](https://app.codecov.io/gh/apache/superset/pull/39728?src=pr&el=tree&filepath=superset%2Fsemantic_layers%2Fmapper.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VwZXJzZXQvc2VtYW50aWNfbGF5ZXJzL21hcHBlci5weQ==) | 0.00% | [1 Missing :warning: ](https://app.codecov.io/gh/apache/superset/pull/39728?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 @@
## semantic-layer-extension #39728 +/- ##
===========================================================
Coverage ? 59.72%
===========================================================
Files ? 741
Lines ? 61042
Branches ? 7357
===========================================================
Hits ? 36455
Misses ? 23075
Partials ? 1512
```
| [Flag](https://app.codecov.io/gh/apache/superset/pull/39728/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/39728/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `39.44% <0.00%> (?)` | |
| [postgres](https://app.codecov.io/gh/apache/superset/pull/39728/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `59.48% <0.00%> (?)` | |
| [presto](https://app.codecov.io/gh/apache/superset/pull/39728/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `41.17% <0.00%> (?)` | |
| [python](https://app.codecov.io/gh/apache/superset/pull/39728/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `59.69% <0.00%> (?)` | |
| [sqlite](https://app.codecov.io/gh/apache/superset/pull/39728/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `59.12% <0.00%> (?)` | |
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/39728?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