-
Notifications
You must be signed in to change notification settings - Fork 13.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
revert: feat: support None operand in EQUAL operator (#21713)" #22065
Conversation
This reverts commit 05648eb.
@john-bodley I believe the original reason for this PR was due to the fact that native filters or cross filters were misbehaving due to this inconsistency. Unless there are known regressions caused by this PR I'd prefer to see us incrementally improve the UX rather than moving back to the previous state where filtering with NULL values is broken again. @rusackas @michael-s-molina who might have additional context. |
Codecov Report
@@ Coverage Diff @@
## master #22065 +/- ##
===========================================
- Coverage 67.07% 55.72% -11.35%
===========================================
Files 1815 1815
Lines 69575 69575
Branches 7486 7486
===========================================
- Hits 46665 38771 -7894
- Misses 20974 28868 +7894
Partials 1936 1936
Flags with carried forward coverage won't be shown. Click here to find out more.
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
@villebro thanks for the context, however that wasn't clear from the description of the original PR. I mostly agree that rolling forward is often easier than rolling back, however I do sense there are a number of shortcomings with the existing logic and having said logic merged—albeit a month ago—shouldn't imply precedence over potential short comings with the implementation. Granted reverting this feature will likely churn existing deployments, but equally deployments moving forward with this SHA are equally likely going to negatively impact their users. Personally a change like this—simply in nature but potentially profound in terms of impact—should likely be placed behind a feature flag to ensure i) that all the necessary wrinkles can be ironed out, and ii) deployments can coordinate their messaging and/or one off migrations to remedy charts which may be impacted by said change. |
If I'm not mistaken, reverting this PR will break the Drill to Detail feature. If we decide to revert it then we need to fix all the places where it's being used. @rusackas |
I'm supportive of allowing |
@michael-s-molina at Airbnb we've going to revert it locally, so it's definitely not overly time critical to revert (if that's what the consensus is) in open source. |
Note @michael-s-molina, @villebro, and @zhaoyongjie I may be misinformed about what the current situation is regarding how the ad-hoc filters currently handle (or partially handle) string values encoded as |
@john-bodley I think the original PR intends to process the Before and after the original PR, the ad-hoc filter modal is not prepared to support |
@john-bodley I echo @zhaoyongjie 's comments here that the original PR was not intended to directly make it's way into the UI; rather, the intent was to facilitate drilling/cross filtering, where a user may click on a NULL slice, and is expecting that to trigger a where clause that specifically picks out NULLs. I agree that dim_country IN ('<NULL>', 'foo') should not equate to "dim_country IS NULL OR dim_county IN ('foo') , so this should definitely be addressed. If I were to quickly open a PR that fixes this (=makes sure the frontend sends NULL filter events as real |
Hey @john-bodley et al, is there any reason this should still be considered/revisited, or shall we close it out? Seems like water under the bridge at this point. |
SUMMARY
This PR reverts #21713 —via
git revert
. @zhaoyongjie and @villebro though I love the essence of this PR—which is somewhat akin to what Tableau does; making SQL more attainable especially as it relates to handlingNULL
—sadly I don't believe the change is ready for primetime. Specifically:None
use case never materializes as far as I'm concerned (see attached screenshots) given that this is interpreted as the string'None'
.CUSTOM SQL
tab in the ad-hoc filter modal doesn't reflect theSIMPLE
tab logic and thus there's a disconnect between the SQL rendered in the modal and the executed SQL (see attached screenshots).IS NULL
andIS NOT NULL
options which this functionality is replacing. Collectively as a community we need to decide whether the filters map one-to-one with SQL—which is currently how the ad-hoc filter model is defined given the symbiotic relationship between theSIMPLE
andCUSTOM SQL
tabs—or should depart from SQL and represent what is commonly perceived user intent, especially if users aren't well versed with the nuances when handling NULLs.I think for consistency it first makes sense to revert said logic before the issues/inconsistencies have been addressed. Furthermore such a change could actually break existing charts—if the author was unaware of the nuances around
NULL
—and thus a line item in UPDATING.md is likely required so various installations can send out the appropriate PSA to their users.BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
Handling of None
SIMPLE
Executed SQL
SIMPLE vs CUSTOM SQL
SIMPLE
CUSTOM SQL
Executed SQL
TESTING INSTRUCTIONS
CI.
ADDITIONAL INFORMATION