mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
MDEV-18918 SQL mode EMPTY_STRING_IS_NULL breaks RBR upon CREATE TABLE .. SELECT
The 10.5 version of the patch. Removing DEFAULT from INFORMATION_SCHEMA columns. DEFAULT in read-only tables is rather meaningless. Upgrade should go smoothly. Also fixes: MDEV-20254 Problems with EMPTY_STRING_IS_NULL and I_S tables
This commit is contained in:
@ -5,37 +5,37 @@ USE INFORMATION_SCHEMA;
|
||||
SHOW CREATE TABLE INFORMATION_SCHEMA.ROUTINES;
|
||||
Table Create Table
|
||||
ROUTINES CREATE TEMPORARY TABLE `ROUTINES` (
|
||||
`SPECIFIC_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`ROUTINE_CATALOG` varchar(512) NOT NULL DEFAULT '',
|
||||
`ROUTINE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
|
||||
`ROUTINE_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`ROUTINE_TYPE` varchar(13) NOT NULL DEFAULT '',
|
||||
`DATA_TYPE` varchar(64) NOT NULL DEFAULT '',
|
||||
`CHARACTER_MAXIMUM_LENGTH` int(21) DEFAULT NULL,
|
||||
`CHARACTER_OCTET_LENGTH` int(21) DEFAULT NULL,
|
||||
`NUMERIC_PRECISION` int(21) DEFAULT NULL,
|
||||
`NUMERIC_SCALE` int(21) DEFAULT NULL,
|
||||
`DATETIME_PRECISION` bigint(21) unsigned DEFAULT NULL,
|
||||
`CHARACTER_SET_NAME` varchar(64) DEFAULT NULL,
|
||||
`COLLATION_NAME` varchar(64) DEFAULT NULL,
|
||||
`DTD_IDENTIFIER` longtext DEFAULT NULL,
|
||||
`ROUTINE_BODY` varchar(8) NOT NULL DEFAULT '',
|
||||
`ROUTINE_DEFINITION` longtext DEFAULT NULL,
|
||||
`EXTERNAL_NAME` varchar(64) DEFAULT NULL,
|
||||
`EXTERNAL_LANGUAGE` varchar(64) DEFAULT NULL,
|
||||
`PARAMETER_STYLE` varchar(8) NOT NULL DEFAULT '',
|
||||
`IS_DETERMINISTIC` varchar(3) NOT NULL DEFAULT '',
|
||||
`SQL_DATA_ACCESS` varchar(64) NOT NULL DEFAULT '',
|
||||
`SQL_PATH` varchar(64) DEFAULT NULL,
|
||||
`SECURITY_TYPE` varchar(7) NOT NULL DEFAULT '',
|
||||
`CREATED` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`LAST_ALTERED` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`SQL_MODE` varchar(8192) NOT NULL DEFAULT '',
|
||||
`ROUTINE_COMMENT` longtext NOT NULL DEFAULT '',
|
||||
`DEFINER` varchar(189) NOT NULL DEFAULT '',
|
||||
`CHARACTER_SET_CLIENT` varchar(32) NOT NULL DEFAULT '',
|
||||
`COLLATION_CONNECTION` varchar(32) NOT NULL DEFAULT '',
|
||||
`DATABASE_COLLATION` varchar(32) NOT NULL DEFAULT ''
|
||||
`SPECIFIC_NAME` varchar(64) NOT NULL,
|
||||
`ROUTINE_CATALOG` varchar(512) NOT NULL,
|
||||
`ROUTINE_SCHEMA` varchar(64) NOT NULL,
|
||||
`ROUTINE_NAME` varchar(64) NOT NULL,
|
||||
`ROUTINE_TYPE` varchar(13) NOT NULL,
|
||||
`DATA_TYPE` varchar(64) NOT NULL,
|
||||
`CHARACTER_MAXIMUM_LENGTH` int(21),
|
||||
`CHARACTER_OCTET_LENGTH` int(21),
|
||||
`NUMERIC_PRECISION` int(21),
|
||||
`NUMERIC_SCALE` int(21),
|
||||
`DATETIME_PRECISION` bigint(21) unsigned,
|
||||
`CHARACTER_SET_NAME` varchar(64),
|
||||
`COLLATION_NAME` varchar(64),
|
||||
`DTD_IDENTIFIER` longtext,
|
||||
`ROUTINE_BODY` varchar(8) NOT NULL,
|
||||
`ROUTINE_DEFINITION` longtext,
|
||||
`EXTERNAL_NAME` varchar(64),
|
||||
`EXTERNAL_LANGUAGE` varchar(64),
|
||||
`PARAMETER_STYLE` varchar(8) NOT NULL,
|
||||
`IS_DETERMINISTIC` varchar(3) NOT NULL,
|
||||
`SQL_DATA_ACCESS` varchar(64) NOT NULL,
|
||||
`SQL_PATH` varchar(64),
|
||||
`SECURITY_TYPE` varchar(7) NOT NULL,
|
||||
`CREATED` datetime NOT NULL,
|
||||
`LAST_ALTERED` datetime NOT NULL,
|
||||
`SQL_MODE` varchar(8192) NOT NULL,
|
||||
`ROUTINE_COMMENT` longtext NOT NULL,
|
||||
`DEFINER` varchar(189) NOT NULL,
|
||||
`CHARACTER_SET_CLIENT` varchar(32) NOT NULL,
|
||||
`COLLATION_CONNECTION` varchar(32) NOT NULL,
|
||||
`DATABASE_COLLATION` varchar(32) NOT NULL
|
||||
) DEFAULT CHARSET=utf8
|
||||
SELECT * FROM information_schema.columns
|
||||
WHERE table_schema = 'information_schema'
|
||||
@ -46,7 +46,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME SPECIFIC_NAME
|
||||
ORDINAL_POSITION 1
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 64
|
||||
@ -68,7 +68,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME ROUTINE_CATALOG
|
||||
ORDINAL_POSITION 2
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 512
|
||||
@ -90,7 +90,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME ROUTINE_SCHEMA
|
||||
ORDINAL_POSITION 3
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 64
|
||||
@ -112,7 +112,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME ROUTINE_NAME
|
||||
ORDINAL_POSITION 4
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 64
|
||||
@ -134,7 +134,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME ROUTINE_TYPE
|
||||
ORDINAL_POSITION 5
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 13
|
||||
@ -156,7 +156,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME DATA_TYPE
|
||||
ORDINAL_POSITION 6
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 64
|
||||
@ -354,7 +354,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME ROUTINE_BODY
|
||||
ORDINAL_POSITION 15
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 8
|
||||
@ -442,7 +442,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME PARAMETER_STYLE
|
||||
ORDINAL_POSITION 19
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 8
|
||||
@ -464,7 +464,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME IS_DETERMINISTIC
|
||||
ORDINAL_POSITION 20
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 3
|
||||
@ -486,7 +486,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME SQL_DATA_ACCESS
|
||||
ORDINAL_POSITION 21
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 64
|
||||
@ -530,7 +530,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME SECURITY_TYPE
|
||||
ORDINAL_POSITION 23
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 7
|
||||
@ -552,7 +552,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME CREATED
|
||||
ORDINAL_POSITION 24
|
||||
COLUMN_DEFAULT '0000-00-00 00:00:00'
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE datetime
|
||||
CHARACTER_MAXIMUM_LENGTH NULL
|
||||
@ -574,7 +574,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME LAST_ALTERED
|
||||
ORDINAL_POSITION 25
|
||||
COLUMN_DEFAULT '0000-00-00 00:00:00'
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE datetime
|
||||
CHARACTER_MAXIMUM_LENGTH NULL
|
||||
@ -596,7 +596,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME SQL_MODE
|
||||
ORDINAL_POSITION 26
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 8192
|
||||
@ -618,7 +618,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME ROUTINE_COMMENT
|
||||
ORDINAL_POSITION 27
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE longtext
|
||||
CHARACTER_MAXIMUM_LENGTH 4294967295
|
||||
@ -640,7 +640,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME DEFINER
|
||||
ORDINAL_POSITION 28
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 189
|
||||
@ -662,7 +662,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME CHARACTER_SET_CLIENT
|
||||
ORDINAL_POSITION 29
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 32
|
||||
@ -684,7 +684,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME COLLATION_CONNECTION
|
||||
ORDINAL_POSITION 30
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 32
|
||||
@ -706,7 +706,7 @@ TABLE_SCHEMA information_schema
|
||||
TABLE_NAME ROUTINES
|
||||
COLUMN_NAME DATABASE_COLLATION
|
||||
ORDINAL_POSITION 31
|
||||
COLUMN_DEFAULT ''
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 32
|
||||
@ -725,12 +725,12 @@ IS_GENERATED NEVER
|
||||
GENERATION_EXPRESSION NULL
|
||||
DESCRIBE INFORMATION_SCHEMA.ROUTINES;
|
||||
Field Type Null Key Default Extra
|
||||
SPECIFIC_NAME varchar(64) NO
|
||||
ROUTINE_CATALOG varchar(512) NO
|
||||
ROUTINE_SCHEMA varchar(64) NO
|
||||
ROUTINE_NAME varchar(64) NO
|
||||
ROUTINE_TYPE varchar(13) NO
|
||||
DATA_TYPE varchar(64) NO
|
||||
SPECIFIC_NAME varchar(64) NO NULL
|
||||
ROUTINE_CATALOG varchar(512) NO NULL
|
||||
ROUTINE_SCHEMA varchar(64) NO NULL
|
||||
ROUTINE_NAME varchar(64) NO NULL
|
||||
ROUTINE_TYPE varchar(13) NO NULL
|
||||
DATA_TYPE varchar(64) NO NULL
|
||||
CHARACTER_MAXIMUM_LENGTH int(21) YES NULL
|
||||
CHARACTER_OCTET_LENGTH int(21) YES NULL
|
||||
NUMERIC_PRECISION int(21) YES NULL
|
||||
@ -739,23 +739,23 @@ DATETIME_PRECISION bigint(21) unsigned YES NULL
|
||||
CHARACTER_SET_NAME varchar(64) YES NULL
|
||||
COLLATION_NAME varchar(64) YES NULL
|
||||
DTD_IDENTIFIER longtext YES NULL
|
||||
ROUTINE_BODY varchar(8) NO
|
||||
ROUTINE_BODY varchar(8) NO NULL
|
||||
ROUTINE_DEFINITION longtext YES NULL
|
||||
EXTERNAL_NAME varchar(64) YES NULL
|
||||
EXTERNAL_LANGUAGE varchar(64) YES NULL
|
||||
PARAMETER_STYLE varchar(8) NO
|
||||
IS_DETERMINISTIC varchar(3) NO
|
||||
SQL_DATA_ACCESS varchar(64) NO
|
||||
PARAMETER_STYLE varchar(8) NO NULL
|
||||
IS_DETERMINISTIC varchar(3) NO NULL
|
||||
SQL_DATA_ACCESS varchar(64) NO NULL
|
||||
SQL_PATH varchar(64) YES NULL
|
||||
SECURITY_TYPE varchar(7) NO
|
||||
CREATED datetime NO 0000-00-00 00:00:00
|
||||
LAST_ALTERED datetime NO 0000-00-00 00:00:00
|
||||
SQL_MODE varchar(8192) NO
|
||||
ROUTINE_COMMENT longtext NO
|
||||
DEFINER varchar(189) NO
|
||||
CHARACTER_SET_CLIENT varchar(32) NO
|
||||
COLLATION_CONNECTION varchar(32) NO
|
||||
DATABASE_COLLATION varchar(32) NO
|
||||
SECURITY_TYPE varchar(7) NO NULL
|
||||
CREATED datetime NO NULL
|
||||
LAST_ALTERED datetime NO NULL
|
||||
SQL_MODE varchar(8192) NO NULL
|
||||
ROUTINE_COMMENT longtext NO NULL
|
||||
DEFINER varchar(189) NO NULL
|
||||
CHARACTER_SET_CLIENT varchar(32) NO NULL
|
||||
COLLATION_CONNECTION varchar(32) NO NULL
|
||||
DATABASE_COLLATION varchar(32) NO NULL
|
||||
# ========== routines.2 ==========
|
||||
DROP DATABASE IF EXISTS i_s_routines_test;
|
||||
CREATE DATABASE i_s_routines_test;
|
||||
|
Reference in New Issue
Block a user