sadpandajoe opened a new pull request, #35297:
URL: https://github.com/apache/superset/pull/35297

   <!---
   Please write the PR title following the conventions at 
https://www.conventionalcommits.org/en/v1.0.0/
   Example:
   fix(dashboard): load charts correctly
   -->
   
   ### SUMMARY
     **Root Cause**
   
     MySQL boolean fields were incorrectly displaying as numeric icons with raw 
0/1 values instead of readable True/False text in SQL Lab and Explore views. 
The issue had two layers:
   
     1. Type Mapping: TINYINT(1) columns were mapped to GenericDataType.NUMERIC 
instead of GenericDataType.BOOLEAN
     2. Value Conversion Bug: bool("0") and bool(b"0") return True in Python 
instead of the expected False
   
     **Solution**
   
     Two-layer fix targeting MySQL's TINYINT(1) boolean representation:
   
     1. Schema-level: Added precise pattern matching for TINYINT(1) → 
GenericDataType.BOOLEAN
     2. Runtime-level: Enhanced fetch_data() with normalization logic for 
strings/bytes/Decimal before boolean conversion
   
     **Changes**
   
     - superset/db_engine_specs/mysql.py: Added boolean type mapping and 
conversion logic
     - tests/unit_tests/db_engine_specs/test_mysql.py: Comprehensive test 
coverage for edge cases
   
   
   ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
   <!--- Skip this if not applicable -->
   
   ### TESTING INSTRUCTIONS
   <!--- Required! What steps can be taken to manually verify the changes? -->
     - ✅ All existing MySQL tests pass
     - ✅ New parametrized tests cover string/bytes/Decimal conversion scenarios
     - ✅ Preserves behavior for non-boolean TINYINT variants (TINYINT(2), etc.)
     - ✅ End-to-end pipeline validation with pandas boolean inference
   
   
   ### ADDITIONAL INFORMATION
   <!--- Check any relevant boxes with "x" -->
   <!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue -->
   - [X] Has associated issue: Fixes: #35166
   - [ ] 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