Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.1(EOL), 10.2(EOL), 10.3(EOL)
Description
CREATE OR REPLACE TABLE t1 AS SELECT 1=1; |
SHOW CREATE TABLE t1; |
CREATE OR REPLACE TABLE t1 AS SELECT 1=1 UNION SELECT 1=1; |
SHOW CREATE TABLE t1; |
Notice:
- The first CREATE statement made a column of the int(1) type.
- The second CREATE statement with UNION made a column the bigint(11) type. Looks excessive. An int column would be enough.
More examples:
CREATE OR REPLACE TABLE t1 AS SELECT strcmp('a','b'); |
SHOW CREATE TABLE t1; |
CREATE OR REPLACE TABLE t1 AS SELECT strcmp('a','b') UNION SELECT strcmp('c','d'); |
SHOW CREATE TABLE t1; |
CREATE OR REPLACE TABLE t1 AS SELECT 1+1; |
SHOW CREATE TABLE t1; |
CREATE OR REPLACE TABLE t1 AS SELECT 1+1 UNION SELECT 1+1; |
SHOW CREATE TABLE t1; |
CREATE OR REPLACE TABLE t1 AS SELECT EXISTS (SELECT 1); |
SHOW CREATE TABLE t1; |
CREATE OR REPLACE TABLE t1 AS SELECT EXISTS (SELECT 1) UNION SELECT EXISTS (SELECT 1); |
SHOW CREATE TABLE t1; |
CREATE OR REPLACE TABLE t1 AS SELECT MONTH(NOW()); |
SHOW CREATE TABLE t1; |
CREATE OR REPLACE TABLE t1 AS SELECT MONTH(NOW()) UNION SELECT MONTH(NOW()); |
SHOW CREATE TABLE t1; |
CREATE OR REPLACE TABLE t1 AS SELECT WEEKDAY(NOW()); |
SHOW CREATE TABLE t1; |
CREATE OR REPLACE TABLE t1 AS SELECT WEEKDAY(NOW()) UNION SELECT WEEKDAY(NOW()); |
SHOW CREATE TABLE t1; |
Attachments
Issue Links
- relates to
-
MDEV-12619 UNION creates excessive integer column types for integer literals
-
- Closed
-
Activity
Description |
{code:sql} CREATE OR REPLACE TABLE t1 AS SELECT 1; SHOW CREATE TABLE t1; CREATE OR REPLACE TABLE t1 AS SELECT 1 UNION SELECT 1; SHOW CREATE TABLE t1; {code} Notice: - The first {{CREATE}} statement made a column of the {{int(1)}} type. - The second {{CREATE}} statement with {{UNION}} made a column the {{bigint(11)}} type. Looks excessive. An {{int}} column would be enough. {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT 1=1; SHOW CREATE TABLE t1; CREATE OR REPLACE TABLE t1 AS SELECT 1=1 UNION SELECT 1=1; SHOW CREATE TABLE t1; {code} {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT strcmp('a','b'); SHOW CREATE TABLE t1; CREATE OR REPLACE TABLE t1 AS SELECT strcmp('a','b') UNION SELECT strcmp('c','d'); SHOW CREATE TABLE t1; {code} {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT 1+1; SHOW CREATE TABLE t1; CREATE OR REPLACE TABLE t1 AS SELECT 1+1 UNION SELECT 1+1; SHOW CREATE TABLE t1; {code} {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT EXISTS (SELECT 1); SHOW CREATE TABLE t1; CREATE OR REPLACE TABLE t1 AS SELECT EXISTS (SELECT 1) UNION SELECT EXISTS (SELECT 1); SHOW CREATE TABLE t1; {code} {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT MONTH(NOW()); SHOW CREATE TABLE t1; CREATE OR REPLACE TABLE t1 AS SELECT MONTH(NOW()) UNION SELECT MONTH(NOW()); SHOW CREATE TABLE t1; {code} {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT WEEKDAY(NOW()); SHOW CREATE TABLE t1; CREATE OR REPLACE TABLE t1 AS SELECT WEEKDAY(NOW()) UNION SELECT WEEKDAY(NOW()); SHOW CREATE TABLE t1; {code} |
{code:sql}
CREATE OR REPLACE TABLE t1 AS SELECT 1=1; SHOW CREATE TABLE t1; CREATE OR REPLACE TABLE t1 AS SELECT 1=1 UNION SELECT 1=1; SHOW CREATE TABLE t1; {code} Notice: - The first {{CREATE}} statement made a column of the {{int(1)}} type. - The second {{CREATE}} statement with {{UNION}} made a column the {{bigint(11)}} type. Looks excessive. An {{int}} column would be enough. More examples: {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT strcmp('a','b'); SHOW CREATE TABLE t1; CREATE OR REPLACE TABLE t1 AS SELECT strcmp('a','b') UNION SELECT strcmp('c','d'); SHOW CREATE TABLE t1; {code} {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT 1+1; SHOW CREATE TABLE t1; CREATE OR REPLACE TABLE t1 AS SELECT 1+1 UNION SELECT 1+1; SHOW CREATE TABLE t1; {code} {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT EXISTS (SELECT 1); SHOW CREATE TABLE t1; CREATE OR REPLACE TABLE t1 AS SELECT EXISTS (SELECT 1) UNION SELECT EXISTS (SELECT 1); SHOW CREATE TABLE t1; {code} {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT MONTH(NOW()); SHOW CREATE TABLE t1; CREATE OR REPLACE TABLE t1 AS SELECT MONTH(NOW()) UNION SELECT MONTH(NOW()); SHOW CREATE TABLE t1; {code} {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT WEEKDAY(NOW()); SHOW CREATE TABLE t1; CREATE OR REPLACE TABLE t1 AS SELECT WEEKDAY(NOW()) UNION SELECT WEEKDAY(NOW()); SHOW CREATE TABLE t1; {code} |
Summary | UNION creates excessive integer column types | UNION creates excessive integer column types for functions |
Link |
This issue relates to |
Component/s | Data types [ 13906 ] | |
Component/s | OTHER [ 10125 ] |
Fix Version/s | 10.4 [ 22408 ] |
Epic Link | MDEV-21071 [ 80504 ] |
Workflow | MariaDB v3 [ 80503 ] | MariaDB v4 [ 140283 ] |
Fix Version/s | 10.3 [ 22126 ] |