Skip to content

Commit

Permalink
fix(tianmu): To support union(all) the statement which is without fro…
Browse files Browse the repository at this point in the history
…m clause

1: To fixup unsupport union or union all a sql statement which is without from clause.
2: Re-format some codes and functions.
  • Loading branch information
RingsC committed Jun 26, 2023
1 parent 7d03695 commit 0e9ec24
Show file tree
Hide file tree
Showing 18 changed files with 2,411 additions and 2,215 deletions.
55 changes: 55 additions & 0 deletions mysql-test/suite/tianmu/r/issue1860.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
DROP DATABASE IF EXISTS issue1860_test;
CREATE DATABASE issue1860_test;
USE issue1860_test;
CREATE TABLE tt(id decimal(18,0), dt datetime) ENGINE =TIANMU;
INSERT INTO tt VALUES(1111.0, '2023-01-01');
SELECT id FROM tt UNION SELECT 2222 c1 FROM dual;
id
1111
2222
INSERT INTO tt VALUES(2222.0, '2023-02-02');
SELECT id FROM tt UNION SELECT 2222 c1 FROM dual;
id
1111
2222
SELECT id FROM tt UNION ALL SELECT 2222 c1 FROM dual;
id
1111
2222
2222
SELECT id FROM tt UNION SELECT 2222 ;
id
1111
2222
sELECT id FROM tt UNION ALL SELECT 2222;
id
1111
2222
2222
SELECT id, dt FROM tt UNION SELECT 2222, '2022-01-01';
id dt
1111 2023-01-01 00:00:00
2222 2023-02-02 00:00:00
2222 2022-01-01
SELECT id, dt FROM tt UNION SELECT 2222, str_to_date('2022-02-03', '%Y-%m-%d');
id dt
1111 2023-01-01 00:00:00
2222 2023-02-02 00:00:00
2222 2022-02-03 00:00:00
SELECT id, dt FROM tt UNION SELECT 2222, str_to_date('2023-02-02', '%Y-%m-%d');
id dt
1111 2023-01-01 00:00:00
2222 2023-02-02 00:00:00
SELECT dt FROM tt UNION SELECT 2222;
ERROR HY000: wrong types of columns
SELECT dt FROM tt UNION SELECT '2222';
dt
2023-01-01 00:00:00
2023-02-02 00:00:00
2222
SELECT * FROM tt UNION SELECT 222;
ERROR 21000: The used SELECT statements have a different number of columns
SELECT * FROM tt UNION ALL SELECT 222;
ERROR 21000: The used SELECT statements have a different number of columns
DROP TABLE tt;
DROP DATABASE issue1860_test;
43 changes: 43 additions & 0 deletions mysql-test/suite/tianmu/t/issue1860.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
--source include/have_tianmu.inc

--disable_warnings
DROP DATABASE IF EXISTS issue1860_test;

CREATE DATABASE issue1860_test;
USE issue1860_test;
--enable_warnings


CREATE TABLE tt(id decimal(18,0), dt datetime) ENGINE =TIANMU;
INSERT INTO tt VALUES(1111.0, '2023-01-01');

SELECT id FROM tt UNION SELECT 2222 c1 FROM dual;

INSERT INTO tt VALUES(2222.0, '2023-02-02');

SELECT id FROM tt UNION SELECT 2222 c1 FROM dual;
SELECT id FROM tt UNION ALL SELECT 2222 c1 FROM dual;

SELECT id FROM tt UNION SELECT 2222 ;
sELECT id FROM tt UNION ALL SELECT 2222;

SELECT id, dt FROM tt UNION SELECT 2222, '2022-01-01';
SELECT id, dt FROM tt UNION SELECT 2222, str_to_date('2022-02-03', '%Y-%m-%d');
SELECT id, dt FROM tt UNION SELECT 2222, str_to_date('2023-02-02', '%Y-%m-%d');

#ERROR 1105 (HY000): wrong types of columns
--error 1105
SELECT dt FROM tt UNION SELECT 2222;
SELECT dt FROM tt UNION SELECT '2222';

#ERROR 1222 (21000): The used SELECT statements have a different number of columns
--error 1222
SELECT * FROM tt UNION SELECT 222;
--error 1222
SELECT * FROM tt UNION ALL SELECT 222;


DROP TABLE tt;

DROP DATABASE issue1860_test;

Loading

0 comments on commit 0e9ec24

Please sign in to comment.