dolt
dolt copied to clipboard
lateral join with aggregation returns wrong results
lateral join with aggregation returns wrong results
Set up:
CREATE TABLE c (c_id INT PRIMARY KEY, bill TEXT);
CREATE TABLE o (o_id INT PRIMARY KEY, c_id INT, ship TEXT);
INSERT INTO c VALUES (1, 'CA'), (2, 'TX'), (3, 'MA'), (4, 'TX'), (5, NULL), (6, 'FL');
INSERT INTO o VALUES (10, 1, 'CA'), (20, 1, 'CA'), (30, 1, 'CA'), (40, 2, 'CA'), (50, 2, 'TX'), (60, 2, NULL), (70, 4, 'WY'), (80, 4, NULL), (90, 6, 'WA');
SELECT * FROM (SELECT c_id AS c_c_id, bill FROM c) sq1, LATERAL (SELECT row_number() OVER () AS rownum FROM o WHERE c_id = c_c_id) sq2 ORDER BY c_c_id, bill, rownum;
+--------+------+--------+
| c_c_id | bill | rownum |
+--------+------+--------+
| 1 | CA | 1 |
| 1 | CA | 2 |
| 1 | CA | 3 |
| 2 | TX | 1 |
| 2 | TX | 2 |
| 2 | TX | 3 |
| 4 | TX | 1 |
| 4 | TX | 2 |
| 6 | FL | 1 |
+--------+------+--------+
9 rows in set (0.0008 sec)
SELECT * FROM (SELECT c_id AS c_c_id, bill FROM c) sq1, LATERAL (SELECT row_number() OVER () AS rownum FROM o WHERE c_id = c_c_id) sq2 ORDER BY c_c_id, bill, rownum;
+--------+------+--------+
| c_c_id | bill | rownum |
+--------+------+--------+
| 1 | CA | 1 |
| 1 | CA | 2 |
| 1 | CA | 3 |
| 2 | TX | 1 |
| 2 | TX | 2 |
| 2 | TX | 3 |
| 3 | MA | NULL |
| 4 | TX | 1 |
| 4 | TX | 2 |
| 5 | NULL | NULL |
| 6 | FL | 1 |
+--------+------+--------+
11 rows in set (0.00 sec)
There are skipped tests in gms/enginetest/queries/lgoic_test_scripts.go