Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.1(EOL), 10.2(EOL), 10.3(EOL)
Description
CREATE OR REPLACE TABLE t1 AS SELECT 1; |
SHOW CREATE TABLE t1; |
+-------+----------------------------------------------------------------------------------------------+
|
| Table | Create Table |
|
+-------+----------------------------------------------------------------------------------------------+
|
| t1 | CREATE TABLE `t1` (
|
`1` int(1) NOT NULL DEFAULT '0'
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
|
+-------+----------------------------------------------------------------------------------------------+
|
CREATE OR REPLACE TABLE t1 AS SELECT 1 UNION SELECT 1; |
SHOW CREATE TABLE t1; |
+-------+--------------------------------------------------------------------------------------------------+
|
| Table | Create Table |
|
+-------+--------------------------------------------------------------------------------------------------+
|
| t1 | CREATE TABLE `t1` (
|
`1` bigint(20) NOT NULL DEFAULT '0'
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
|
+-------+--------------------------------------------------------------------------------------------------+
|
Notice:
- The first CREATE statement made a column of the int(1) type.
- The second CREATE statement with UNION made a column the bigint(20) type. Looks excessive. An int column would be enough.
Attachments
Issue Links
- blocks
-
MDEV-4912 Data type plugin API version 1
-
- Closed
-
- causes
-
MDEV-16347 Integer literal is typed as MYSQL_TYPE_LONG
-
- Closed
-
- relates to
-
MDEV-12613 UNION creates excessive integer column types for functions
-
- Open
-
Activity
Link | This issue relates to MDEV-12613 [ MDEV-12613 ] |
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; SHOW CREATE TABLE t1; {code} {noformat} +-------+----------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `1` int(1) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+----------------------------------------------------------------------------------------------+ {noformat} {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT 1 UNION SELECT 1; SHOW CREATE TABLE t1; {code} {noformat} {noformat} 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. |
Description |
{code:sql}
CREATE OR REPLACE TABLE t1 AS SELECT 1; SHOW CREATE TABLE t1; {code} {noformat} +-------+----------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `1` int(1) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+----------------------------------------------------------------------------------------------+ {noformat} {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT 1 UNION SELECT 1; SHOW CREATE TABLE t1; {code} {noformat} {noformat} 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; SHOW CREATE TABLE t1; {code} {noformat} +-------+----------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `1` int(1) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+----------------------------------------------------------------------------------------------+ {noformat} {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT 1 UNION SELECT 1; SHOW CREATE TABLE t1; {code} {noformat} +-------+--------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+--------------------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `1` bigint(20) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+--------------------------------------------------------------------------------------------------+ {noformat} 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. Non-union query returns a correct result: {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT 1; SHOW CREATE TABLE t1; {code} {noformat} +-------+----------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `1` int(1) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+----------------------------------------------------------------------------------------------+ {noformat} |
Description |
{code:sql}
CREATE OR REPLACE TABLE t1 AS SELECT 1; SHOW CREATE TABLE t1; {code} {noformat} +-------+----------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `1` int(1) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+----------------------------------------------------------------------------------------------+ {noformat} {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT 1 UNION SELECT 1; SHOW CREATE TABLE t1; {code} {noformat} +-------+--------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+--------------------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `1` bigint(20) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+--------------------------------------------------------------------------------------------------+ {noformat} 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. Non-union query returns a correct result: {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT 1; SHOW CREATE TABLE t1; {code} {noformat} +-------+----------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `1` int(1) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+----------------------------------------------------------------------------------------------+ {noformat} |
{code:sql}
CREATE OR REPLACE TABLE t1 AS SELECT 1; SHOW CREATE TABLE t1; {code} {noformat} +-------+----------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `1` int(1) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+----------------------------------------------------------------------------------------------+ {noformat} {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT 1 UNION SELECT 1; SHOW CREATE TABLE t1; {code} {noformat} +-------+--------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+--------------------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `1` bigint(20) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+--------------------------------------------------------------------------------------------------+ {noformat} 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. |
Description |
{code:sql}
CREATE OR REPLACE TABLE t1 AS SELECT 1; SHOW CREATE TABLE t1; {code} {noformat} +-------+----------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `1` int(1) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+----------------------------------------------------------------------------------------------+ {noformat} {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT 1 UNION SELECT 1; SHOW CREATE TABLE t1; {code} {noformat} +-------+--------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+--------------------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `1` bigint(20) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+--------------------------------------------------------------------------------------------------+ {noformat} 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; SHOW CREATE TABLE t1; {code} {noformat} +-------+----------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `1` int(1) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+----------------------------------------------------------------------------------------------+ {noformat} {code:sql} CREATE OR REPLACE TABLE t1 AS SELECT 1 UNION SELECT 1; SHOW CREATE TABLE t1; {code} {noformat} +-------+--------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+--------------------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `1` bigint(20) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+--------------------------------------------------------------------------------------------------+ {noformat} Notice: - The first {{CREATE}} statement made a column of the {{int(1)}} type. - The second {{CREATE}} statement with {{UNION}} made a column the {{bigint(20)}} type. Looks excessive. An {{int}} column would be enough. |
Status | Open [ 1 ] | In Progress [ 3 ] |
issue.field.resolutiondate | 2017-04-28 12:28:40.0 | 2017-04-28 12:28:40.097 |
Fix Version/s | 10.3.1 [ 22532 ] | |
Fix Version/s | 10.3 [ 22126 ] | |
Resolution | Fixed [ 1 ] | |
Status | In Progress [ 3 ] | Closed [ 6 ] |
Link |
This issue causes |
Workflow | MariaDB v3 [ 80518 ] | MariaDB v4 [ 152037 ] |
Pushed to bb-10.2-ext