dolt icon indicating copy to clipboard operation
dolt copied to clipboard

Missing support for `ALL`, `ANY`, and `SOME` operators

Open jycor opened this issue 1 year ago • 0 comments

Missing support for ALL, ANY, and SOME operators MySQL Docs

Some simple test cases here; there are more skipped tests in gms/enginetest/queries/lgoic_test_scripts.go

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 c WHERE bill = ALL(SELECT ship FROM o WHERE o.c_id=c.c_id);
+------+------+
| c_id | bill |
+------+------+
|    1 | CA   |
|    3 | MA   |
|    5 | NULL |
+------+------+
3 rows in set (0.0006 sec)
SELECT * FROM c WHERE bill < ANY(SELECT ship FROM o WHERE o.c_id=c.c_id);
+------+------+
| c_id | bill |
+------+------+
|    4 | TX   |
|    6 | FL   |
+------+------+
2 rows in set (0.0026 sec)
SELECT * FROM c WHERE bill < SOME(SELECT ship FROM o WHERE o.c_id=c.c_id);
+------+------+
| c_id | bill |
+------+------+
|    4 | TX   |
|    6 | FL   |
+------+------+
2 rows in set (0.0026 sec)

jycor avatar Oct 26 '23 22:10 jycor