[MDEV-33337] Wrong query rows of Function PERIOD_ADD Created: 2024-01-31  Updated: 2024-01-31

Status: Open
Project: MariaDB Server
Component/s: Optimizer
Affects Version/s: 11.4.0
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Shiyang Ye Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Environment:

Windows11 CLI



 Description   

Description

In theory, sql1 and sql2 should return the same result, however,sql1 return Empty set while sql2 return 0.0000

SQL1:

SELECT f1 FROM (SELECT (t0.c0) / (PERIOD_ADD(196802,2)) AS f1 FROM t0) AS t WHERE f1;

SQL2:

SELECT f1 FROM (SELECT (t0.c0) / (PERIOD_ADD(196802,2)) AS f1, ((t0.c0) / (PERIOD_ADD(196802,2))) IS TRUE AS flag FROM t0) AS t WHERE flag=1;

How to repeat

DROP DATABASE IF EXISTS database0;
CREATE DATABASE database0;
USE database0;
CREATE TABLE t0(c0 INT) ;
INSERT INTO t0(c0) VALUES(0.6799213532830038);

version

 
SELECT version();
 
+----------------+
| version()      |
+----------------+
| 11.4.0-MariaDB |
+----------------+
1 row in set (0.00 sec)

SELECT f1 FROM (SELECT (t0.c0) / (PERIOD_ADD(196802,2)) AS f1 FROM t0) AS t WHERE f1;  
 
Empty set (0.00 sec)

SELECT f1 FROM (SELECT (t0.c0) / (PERIOD_ADD(196802,2)) AS f1, ((t0.c0) / (PERIOD_ADD(196802,2))) IS TRUE AS flag FROM t0) AS t WHERE flag=1;
 
+-----------+
| f1        |
+-----------+
|   0.0000 |
+-----------+


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