Vitor-Avila opened a new pull request, #41131:
URL: https://github.com/apache/superset/pull/41131

   ### SUMMARY
   When a chart's query is fetched via the API with the `filters_dashboard_id` 
parameter, the dashboard's filter values were written to both 
`query["filters"]` and `query["extra_form_data"]`. For charts powered by 
virtual datasets using the `filter_values()` Jinja macro, the macro reads each 
value twice, producing SQL like `country in ('USA', 'USA')`.
   
   This PR fixes the issue by making `extra_form_data` the single source of 
truth (`merge_extra_form_data` already
   promotes dashboard filters into `adhoc_filters` during query context 
processing).
   
   ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
   No UI changes.
   
   ### TESTING INSTRUCTIONS
   Unit test added. For manual testing:
   1. Create a virtual dataset using the `filter_values()` macro.
   2. Use this dataset to create a chart and add it to a dashboard.
   3. Add a filter with default value to be retrieved by the macro.
   4. Hit the API with 
`/api/v1/chart/{{ChartID}}data/?filters_dashboard_id={{DashboardID}}&type=query`
   
   ### 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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to