Details
-
Task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
Description
Currently we have two versions of data type attribute aggregation code:
- For hybrid functions, implemented in Type_handler::Item_hybrid_func_fix_attributes()
- For UNION, implemented in Item_type_holder::join_types()
Both versions do the same thing, but in some cases UNION is not precise enough.
See bugs: MDEV-9495, MDEV-9497, MDEV-12594, MDEV-12595, MDEV-12599.
Under terms of this task we'll make the UNION related code reuse the code implemented in Type_handler::Item_hybrid_func_fix_attributes() and get rid of the second implementation in Item_type_holder::join_types().
This, among fixing the mentioned bugs, will simplify development of data type plugins, as the implementer will have to do less coding.
Attachments
Issue Links
- blocks
-
MDEV-4912 Data type plugin API version 1
- Closed
- relates to
-
MDEV-9495 Wrong field type for a UNION of a signed and an unsigned INT expression
- Closed
-
MDEV-9497 UNION and COALESCE produce different field types for DECIMAL+INT
- Closed
-
MDEV-12594 UNION between fixed length double columns does not always preserve scale
- Closed
-
MDEV-12595 UNION converts INT to BIGINT
- Closed
-
MDEV-12599 UNION is not symmetric when mixing INT and CHAR
- Closed
-
MDEV-9234 Add Type_handler::union_element_finalize()
- Closed
-
MDEV-21662 UNION to sub-query with constant NULL incorrectly cast unsigned INT to DECIMAL(48,38)
- Open
-
MDEV-24387 Wrong number of decimal digits in certain UNION/Subqery constellation
- Closed