@@ -457,17 +457,16 @@ contexts (`=`, `<`, `>`, `<=`, `>=`, `<>`, `IN`, `BETWEEN`, `CASE .. WHEN`).
457457- Queries that use ` IN ` lists with mixed string and numeric types
458458- Queries that use ` CASE expr WHEN ` with mixed string and numeric types
459459
460- ** Behavioral changes (old → new):**
461-
462- | Expression | Old behavior | New behavior |
463- | --------------------------- | --------------------------------- | ------------------------------------------ |
464- | ` int_col > '100' ` | Lexicographic (incorrect) | Numeric (correct) |
465- | ` float_col = '5' ` | String ` '5' != '5.0' ` (incorrect) | Numeric ` 5.0 = 5.0 ` (correct) |
466- | ` int_col = 'hello' ` | String comparison, always false | Cast error |
467- | ` str_col IN ('a', 1) ` | Coerce to Utf8 | Cast error (` 'a' ` cannot be cast to Int64) |
468- | ` float_col IN ('1.0') ` | String ` '1.0' != '1' ` (incorrect) | Numeric ` 1.0 = 1.0 ` (correct) |
469- | ` CASE str_col WHEN 1.0 ` | Coerce to Utf8 | Coerce to Float64 |
470- | ` SELECT 1 UNION SELECT 'a' ` | Coerce to Utf8 | Coerce to Utf8 (unchanged) |
460+ ** Behavioral changes:**
461+
462+ | Expression | Old behavior | New behavior |
463+ | ----------------------- | ------------------------------- | ------------------------------------------ |
464+ | ` int_col > '100' ` | Lexicographic | Numeric |
465+ | ` float_col = '5' ` | String ` '5' != '5.0' ` | Numeric ` 5.0 = 5.0 ` |
466+ | ` int_col = 'hello' ` | String comparison, always false | Cast error |
467+ | ` str_col IN ('a', 1) ` | Coerce to Utf8 | Cast error (` 'a' ` cannot be cast to Int64) |
468+ | ` float_col IN ('1.0') ` | String ` '1.0' != '1' ` | Numeric ` 1.0 = 1.0 ` (correct) |
469+ | ` CASE str_col WHEN 1.0 ` | Coerce to Utf8 | Coerce to Float64 |
471470
472471** Migration guide:**
473472
@@ -480,7 +479,7 @@ adjustment:
480479 non-numeric values) will now produce a cast error instead of silently
481480 returning no rows.
482481- ** Mixed-type ` IN ` lists** (e.g., ` str_col IN ('a', 1) ` ) are now rejected. Use
483- consistent types in the list, or add an explicit ` CAST ` .
482+ consistent types for the ` IN ` list or add an explicit ` CAST ` .
484483- ** Queries comparing integer columns with decimal strings** (e.g.,
485484 ` int_col = '99.99' ` ) will now produce a cast error because ` '99.99' `
486485 cannot be cast to an integer. Use a float column or adjust the literal.
0 commit comments