[MDEV-29821] DATE/DATETIME null-safe equals should consider expressions that evaluate to NULL <=> NULL as equal Created: 2022-10-19  Updated: 2023-11-28

Status: Open
Project: MariaDB Server
Component/s: Data types
Affects Version/s: 10.6.3, 10.3.36, 10.5.17, 10.9.2
Fix Version/s: 10.4, 10.5, 10.6

Type: Bug Priority: Major
Reporter: Johnathan Davis Assignee: Alexander Barkov
Resolution: Unresolved Votes: 0
Labels: None


 Description   

This was found on MariaDB 10.6.3. There are some inconsistencies in the below expressions using <=>, which I'd expect to all equal 1.

mariadb10.6.3> SELECT CAST(-1 AS DATETIME),
                      CAST(NULL AS DATETIME),
                      CAST(-1 AS DATE), CAST(NULL AS DATE),
                      CAST(-1 AS DATETIME) <=> CAST(NULL AS DATETIME),
                      CAST(-1 AS DATETIME) <=> NULL,
                      CAST(NULL AS DATETIME) <=> NULL,
                      CAST(-1 AS DATE) <=> CAST(NULL AS DATE),
                      CAST(-1 AS DATE) <=> NULL,
                      CAST(NULL AS DATE) <=> NULL, NULL <=> NULL\G
*************************** 1. row ***************************
                           CAST(-1 AS DATETIME): NULL
                         CAST(NULL AS DATETIME): NULL
                               CAST(-1 AS DATE): NULL
                             CAST(NULL AS DATE): NULL
CAST(-1 AS DATETIME) <=> CAST(NULL AS DATETIME): 0
                  CAST(-1 AS DATETIME) <=> NULL: 0
                CAST(NULL AS DATETIME) <=> NULL: 1
        CAST(-1 AS DATE) <=> CAST(NULL AS DATE): 0
                      CAST(-1 AS DATE) <=> NULL: 0
                    CAST(NULL AS DATE) <=> NULL: 1
                                  NULL <=> NULL: 1
1 row in set, 6 warnings (0.00 sec)


Generated at Thu Feb 08 10:11:32 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.