[MDEV-15858] System-Versioned Tables inccorect joins Created: 2018-04-13  Updated: 2018-05-02  Resolved: 2018-05-02

Status: Closed
Project: MariaDB Server
Component/s: Optimizer, Versioned Tables
Affects Version/s: 10.3.5
Fix Version/s: 10.3.6

Type: Bug Priority: Major
Reporter: giko Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Environment:

windows 10



 Description   

CREATE TABLE `t1` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `x` VARCHAR(10),
  PRIMARY KEY (`id`)
)WITH SYSTEM VERSIONING; 
 
CREATE TABLE `t2` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `t1_id` INT(10) UNSIGNED NOT NULL,
  `x` VARCHAR(10),
  PRIMARY KEY (`id`),
  KEY `t1_id_foreign` (`t1_id`),
  CONSTRAINT `t1_id_foreign` FOREIGN KEY (`t1_id`) REFERENCES `t1` (`id`) 
)WITH SYSTEM VERSIONING;
 
 
INSERT INTO t1 SET  `x` = 'a';
UPDATE t1 SET X = 'b' WHERE ID = 1;
 
INSERT INTO t2 SET X = 'b',t1_id=1;
 
SELECT t1.*,t2.* FROM t1 LEFT JOIN t2 ON t1.`id` = t2.`t1_id` ;
+----+------+------+-------+------+
| id | X    | id   | t1_id | X    |
+----+------+------+-------+------+
|  1 | b    |    1 |     1 | b    |
|  1 | a    | NULL |  NULL | NULL |
+----+------+------+-------+------+
2 ROWS IN SET (0.001 sec)
 
expected 
 
SELECT t1.*,t2.* FROM t1 LEFT JOIN t2 ON t1.`id` = t2.`t1_id` ;
+----+------+------+-------+------+
| id | X    | id   | t1_id | X    |
+----+------+------+-------+------+
|  1 | b    |    1 |     1 | b    |
+----+------+------+-------+------+
1 ROWS IN SET (0.001 sec)



 Comments   
Comment by Elena Stepanova [ 2018-05-02 ]

Thanks for the report.
It has been fixed in 10.3.6:

10.3.6

MariaDB [test]>  SELECT t1.*,t2.* FROM t1 LEFT JOIN t2 ON t1.`id` = t2.`t1_id` ;
+----+------+------+-------+------+
| id | x    | id   | t1_id | x    |
+----+------+------+-------+------+
|  1 | b    |    1 |     1 | b    |
+----+------+------+-------+------+
1 row in set (0.00 sec)
 
MariaDB [test]> select @@version;
+----------------------+
| @@version            |
+----------------------+
| 10.3.6-MariaDB-debug |
+----------------------+
1 row in set (0.00 sec)

On 10.3.5 it was indeed reproducible:

10.3.5

MariaDB [test]>  SELECT t1.*,t2.* FROM t1 LEFT JOIN t2 ON t1.`id` = t2.`t1_id` ;
+----+------+------+-------+------+
| id | x    | id   | t1_id | x    |
+----+------+------+-------+------+
|  1 | b    |    1 |     1 | b    |
|  1 | a    | NULL |  NULL | NULL |
+----+------+------+-------+------+
2 rows in set (0.00 sec)
 
MariaDB [test]> select @@version;
+----------------------+
| @@version            |
+----------------------+
| 10.3.5-MariaDB-debug |
+----------------------+
1 row in set (0.00 sec)

Please try to upgrade.

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