Commit 88a4df4e authored by gluh@eagle.(none)'s avatar gluh@eagle.(none)

Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt

into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
parents 7c87dc6e 6b81174c
...@@ -54,7 +54,7 @@ SHOW FULL COLUMNS FROM t1; ...@@ -54,7 +54,7 @@ SHOW FULL COLUMNS FROM t1;
Field Type Collation Null Key Default Extra Privileges Comment Field Type Collation Null Key Default Extra Privileges Comment
GROUP_ID int(10) unsigned NULL NO PRI 0 # GROUP_ID int(10) unsigned NULL NO PRI 0 #
LANG_ID smallint(5) unsigned NULL NO PRI 0 # LANG_ID smallint(5) unsigned NULL NO PRI 0 #
NAME char(80) latin1_swedish_ci NO MUL # NAME char(80) latin1_swedish_ci NO MUL NULL #
DROP TABLE t1; DROP TABLE t1;
create table t1 (n int); create table t1 (n int);
insert into t1 values(9),(3),(12),(10); insert into t1 values(9),(3),(12),(10);
......
...@@ -443,7 +443,7 @@ d date YES NULL ...@@ -443,7 +443,7 @@ d date YES NULL
e varchar(1) NO e varchar(1) NO
f datetime YES NULL f datetime YES NULL
g time YES NULL g time YES NULL
h longblob NO h longblob NO NULL
dd time YES NULL dd time YES NULL
select * from t2; select * from t2;
a b c d e f g h dd a b c d e f g h dd
......
...@@ -488,7 +488,7 @@ t1 CREATE TABLE `t1` ( ...@@ -488,7 +488,7 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
SHOW FIELDS FROM t1; SHOW FIELDS FROM t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
latin1_f char(32) NO latin1_f char(32) NO NULL
ALTER TABLE t1 CHANGE latin1_f ALTER TABLE t1 CHANGE latin1_f
latin1_f CHAR(32) CHARACTER SET latin1 COLLATE latin1_bin; latin1_f CHAR(32) CHARACTER SET latin1 COLLATE latin1_bin;
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
......
...@@ -54,7 +54,7 @@ Table Create Table ...@@ -54,7 +54,7 @@ Table Create Table
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT=' ' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT=' '
SHOW FIELDS FROM ; SHOW FIELDS FROM ;
Field Type Null Key Default Extra Field Type Null Key Default Extra
char(32) NO char(32) NO NULL
SET CHARACTER SET cp1251; SET CHARACTER SET cp1251;
SHOW TABLES; SHOW TABLES;
Tables_in_test Tables_in_test
...@@ -66,7 +66,7 @@ Table Create Table ...@@ -66,7 +66,7 @@ Table Create Table
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT=' ' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT=' '
SHOW FIELDS FROM ; SHOW FIELDS FROM ;
Field Type Null Key Default Extra Field Type Null Key Default Extra
char(32) NO char(32) NO NULL
SET CHARACTER SET utf8; SET CHARACTER SET utf8;
SHOW TABLES; SHOW TABLES;
Tables_in_test Tables_in_test
...@@ -78,7 +78,7 @@ Table Create Table ...@@ -78,7 +78,7 @@ Table Create Table
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='комментарий таблицы' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='комментарий таблицы'
SHOW FIELDS FROM таблица; SHOW FIELDS FROM таблица;
Field Type Null Key Default Extra Field Type Null Key Default Extra
поле char(32) NO поле char(32) NO NULL
SET CHARACTER SET koi8r; SET CHARACTER SET koi8r;
DROP TABLE ; DROP TABLE ;
SET CHARACTER SET default; SET CHARACTER SET default;
......
...@@ -115,7 +115,7 @@ Warning 1364 Field 'd' doesn't have a default value ...@@ -115,7 +115,7 @@ Warning 1364 Field 'd' doesn't have a default value
desc bug20691; desc bug20691;
Field Type Null Key Default Extra Field Type Null Key Default Extra
i int(11) YES NULL i int(11) YES NULL
d datetime NO d datetime NO NULL
dn datetime NO 0000-00-00 00:00:00 dn datetime NO 0000-00-00 00:00:00
insert into bug20691 values (3, DEFAULT, DEFAULT), (3, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (3, DEFAULT, DEFAULT); insert into bug20691 values (3, DEFAULT, DEFAULT), (3, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (3, DEFAULT, DEFAULT);
Warnings: Warnings:
......
...@@ -9,35 +9,35 @@ CREATE TABLE gis_geometrycollection (fid INTEGER NOT NULL PRIMARY KEY, g GEOMET ...@@ -9,35 +9,35 @@ CREATE TABLE gis_geometrycollection (fid INTEGER NOT NULL PRIMARY KEY, g GEOMET
CREATE TABLE gis_geometry (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY); CREATE TABLE gis_geometry (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY);
SHOW FIELDS FROM gis_point; SHOW FIELDS FROM gis_point;
Field Type Null Key Default Extra Field Type Null Key Default Extra
fid int(11) NO PRI fid int(11) NO PRI NULL
g point YES NULL g point YES NULL
SHOW FIELDS FROM gis_line; SHOW FIELDS FROM gis_line;
Field Type Null Key Default Extra Field Type Null Key Default Extra
fid int(11) NO PRI fid int(11) NO PRI NULL
g linestring YES NULL g linestring YES NULL
SHOW FIELDS FROM gis_polygon; SHOW FIELDS FROM gis_polygon;
Field Type Null Key Default Extra Field Type Null Key Default Extra
fid int(11) NO PRI fid int(11) NO PRI NULL
g polygon YES NULL g polygon YES NULL
SHOW FIELDS FROM gis_multi_point; SHOW FIELDS FROM gis_multi_point;
Field Type Null Key Default Extra Field Type Null Key Default Extra
fid int(11) NO PRI fid int(11) NO PRI NULL
g multipoint YES NULL g multipoint YES NULL
SHOW FIELDS FROM gis_multi_line; SHOW FIELDS FROM gis_multi_line;
Field Type Null Key Default Extra Field Type Null Key Default Extra
fid int(11) NO PRI fid int(11) NO PRI NULL
g multilinestring YES NULL g multilinestring YES NULL
SHOW FIELDS FROM gis_multi_polygon; SHOW FIELDS FROM gis_multi_polygon;
Field Type Null Key Default Extra Field Type Null Key Default Extra
fid int(11) NO PRI fid int(11) NO PRI NULL
g multipolygon YES NULL g multipolygon YES NULL
SHOW FIELDS FROM gis_geometrycollection; SHOW FIELDS FROM gis_geometrycollection;
Field Type Null Key Default Extra Field Type Null Key Default Extra
fid int(11) NO PRI fid int(11) NO PRI NULL
g geometrycollection YES NULL g geometrycollection YES NULL
SHOW FIELDS FROM gis_geometry; SHOW FIELDS FROM gis_geometry;
Field Type Null Key Default Extra Field Type Null Key Default Extra
fid int(11) NO PRI fid int(11) NO PRI NULL
g geometry YES NULL g geometry YES NULL
INSERT INTO gis_point VALUES INSERT INTO gis_point VALUES
(101, PointFromText('POINT(10 10)')), (101, PointFromText('POINT(10 10)')),
...@@ -430,7 +430,7 @@ mln multilinestring YES NULL ...@@ -430,7 +430,7 @@ mln multilinestring YES NULL
mpg multipolygon YES NULL mpg multipolygon YES NULL
gc geometrycollection YES NULL gc geometrycollection YES NULL
gm geometry YES NULL gm geometry YES NULL
fid int(11) NO fid int(11) NO NULL
DROP TABLE t1; DROP TABLE t1;
SELECT AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)')))); SELECT AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)'))));
AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)')))) AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)'))))
......
...@@ -529,7 +529,7 @@ Db char(64) NO PRI ...@@ -529,7 +529,7 @@ Db char(64) NO PRI
User char(16) NO PRI User char(16) NO PRI
Table_name char(64) NO PRI Table_name char(64) NO PRI
Grantor char(77) NO MUL Grantor char(77) NO MUL
Timestamp timestamp NO CURRENT_TIMESTAMP Timestamp timestamp NO 0000-00-00 00:00:00
Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') NO Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') NO
Column_priv set('Select','Insert','Update','References') NO Column_priv set('Select','Insert','Update','References') NO
use test; use test;
......
...@@ -1036,7 +1036,7 @@ b NULL ...@@ -1036,7 +1036,7 @@ b NULL
use test; use test;
show columns from t1; show columns from t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
a int(11) NO a int(11) NO NULL
b int(11) YES NULL b int(11) YES NULL
drop table t1; drop table t1;
CREATE TABLE t1 (a int); CREATE TABLE t1 (a int);
...@@ -1434,6 +1434,37 @@ where event_object_table='t1'; ...@@ -1434,6 +1434,37 @@ where event_object_table='t1';
trigger_name trigger_name
drop user mysqltest_1@localhost; drop user mysqltest_1@localhost;
drop database mysqltest; drop database mysqltest;
create table t1 (
f1 varchar(50),
f2 varchar(50) not null,
f3 varchar(50) default '',
f4 varchar(50) default NULL,
f5 bigint not null,
f6 bigint not null default 10,
f7 datetime not null,
f8 datetime default '2006-01-01'
);
select column_default from information_schema.columns where table_name= 't1';
column_default
NULL
NULL
NULL
NULL
10
NULL
2006-01-01 00:00:00
show columns from t1;
Field Type Null Key Default Extra
f1 varchar(50) YES NULL
f2 varchar(50) NO NULL
f3 varchar(50) YES
f4 varchar(50) YES NULL
f5 bigint(20) NO NULL
f6 bigint(20) NO 10
f7 datetime NO NULL
f8 datetime YES 2006-01-01 00:00:00
drop table t1;
End of 5.0 tests. End of 5.0 tests.
select * from information_schema.engines WHERE ENGINE="MyISAM"; select * from information_schema.engines WHERE ENGINE="MyISAM";
ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS
......
...@@ -336,8 +336,8 @@ UNIQUE i1idx (i1), ...@@ -336,8 +336,8 @@ UNIQUE i1idx (i1),
UNIQUE i2idx (i2)); UNIQUE i2idx (i2));
desc t1; desc t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
i1 int(11) NO PRI i1 int(11) NO PRI NULL
i2 int(11) NO UNI i2 int(11) NO UNI NULL
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
...@@ -392,27 +392,27 @@ drop table t1; ...@@ -392,27 +392,27 @@ drop table t1;
create table t1 (a int not null primary key, b varchar(20) not null unique); create table t1 (a int not null primary key, b varchar(20) not null unique);
desc t1; desc t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
a int(11) NO PRI a int(11) NO PRI NULL
b varchar(20) NO UNI b varchar(20) NO UNI NULL
drop table t1; drop table t1;
create table t1 (a int not null primary key, b int not null unique); create table t1 (a int not null primary key, b int not null unique);
desc t1; desc t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
a int(11) NO PRI a int(11) NO PRI NULL
b int(11) NO UNI b int(11) NO UNI NULL
drop table t1; drop table t1;
create table t1 (a int not null primary key, b varchar(20) not null, unique (b(10))); create table t1 (a int not null primary key, b varchar(20) not null, unique (b(10)));
desc t1; desc t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
a int(11) NO PRI a int(11) NO PRI NULL
b varchar(20) NO UNI b varchar(20) NO UNI NULL
drop table t1; drop table t1;
create table t1 (a int not null primary key, b varchar(20) not null, c varchar(20) not null, unique(b(10),c(10))); create table t1 (a int not null primary key, b varchar(20) not null, c varchar(20) not null, unique(b(10),c(10)));
desc t1; desc t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
a int(11) NO PRI a int(11) NO PRI NULL
b varchar(20) NO MUL b varchar(20) NO MUL NULL
c varchar(20) NO c varchar(20) NO NULL
drop table t1; drop table t1;
create table t1 ( create table t1 (
c1 int, c1 int,
......
...@@ -91,7 +91,7 @@ i j k ...@@ -91,7 +91,7 @@ i j k
NULL 1 NULL NULL 1 NULL
Field Type Null Key Default Extra Field Type Null Key Default Extra
i int(11) YES NULL i int(11) YES NULL
j int(11) NO j int(11) NO NULL
k int(11) YES NULL k int(11) YES NULL
+------+---+------+ +------+---+------+
| i | j | k | | i | j | k |
...@@ -102,7 +102,7 @@ k int(11) YES NULL ...@@ -102,7 +102,7 @@ k int(11) YES NULL
| Field | Type | Null | Key | Default | Extra | | Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+ +-------+---------+------+-----+---------+-------+
| i | int(11) | YES | | NULL | | | i | int(11) | YES | | NULL | |
| j | int(11) | NO | | | | | j | int(11) | NO | | NULL | |
| k | int(11) | YES | | NULL | | | k | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+ +-------+---------+------+-----+---------+-------+
i s1 i s1
......
...@@ -269,7 +269,7 @@ prepare stmt4 from ' show columns from t2 where field in (select ?) '; ...@@ -269,7 +269,7 @@ prepare stmt4 from ' show columns from t2 where field in (select ?) ';
SET @arg00="a"; SET @arg00="a";
execute stmt4 using @arg00; execute stmt4 using @arg00;
Field Type Null Key Default Extra Field Type Null Key Default Extra
a int(11) NO PRI a int(11) NO PRI NULL
SET @arg00="b"; SET @arg00="b";
execute stmt4 using @arg00; execute stmt4 using @arg00;
Field Type Null Key Default Extra Field Type Null Key Default Extra
...@@ -280,7 +280,7 @@ Field Type Null Key Default Extra ...@@ -280,7 +280,7 @@ Field Type Null Key Default Extra
prepare stmt4 from ' show columns from t2 from test like ''a%'' '; prepare stmt4 from ' show columns from t2 from test like ''a%'' ';
execute stmt4; execute stmt4;
Field Type Null Key Default Extra Field Type Null Key Default Extra
a int(11) NO PRI a int(11) NO PRI NULL
create index t2_idx on t2(b); create index t2_idx on t2(b);
prepare stmt4 from ' show index from t2 from test '; prepare stmt4 from ' show index from t2 from test ';
execute stmt4; execute stmt4;
...@@ -389,7 +389,7 @@ drop database mysqltest ; ...@@ -389,7 +389,7 @@ drop database mysqltest ;
prepare stmt3 from ' describe t2 '; prepare stmt3 from ' describe t2 ';
execute stmt3; execute stmt3;
Field Type Null Key Default Extra Field Type Null Key Default Extra
a int(11) NO PRI a int(11) NO PRI NULL
b char(10) YES MUL NULL b char(10) YES MUL NULL
drop table t2 ; drop table t2 ;
execute stmt3; execute stmt3;
......
...@@ -228,7 +228,7 @@ show full columns from t1; ...@@ -228,7 +228,7 @@ show full columns from t1;
Field Type Collation Null Key Default Extra Privileges Comment Field Type Collation Null Key Default Extra Privileges Comment
test_set set('val1','val2','val3') latin1_swedish_ci NO select,insert,update,references test_set set('val1','val2','val3') latin1_swedish_ci NO select,insert,update,references
name char(20) latin1_swedish_ci YES O'Brien select,insert,update,references O'Brien as default name char(20) latin1_swedish_ci YES O'Brien select,insert,update,references O'Brien as default
c int(11) NULL NO select,insert,update,references int column c int(11) NULL NO NULL select,insert,update,references int column
c-b int(11) NULL YES NULL select,insert,update,references name with a minus c-b int(11) NULL YES NULL select,insert,update,references name with a minus
space 2 int(11) NULL YES NULL select,insert,update,references name with a space space 2 int(11) NULL YES NULL select,insert,update,references name with a space
drop table t1; drop table t1;
...@@ -791,6 +791,246 @@ select 1 from information_schema.tables limit 1; ...@@ -791,6 +791,246 @@ select 1 from information_schema.tables limit 1;
show status like 'slow_queries'; show status like 'slow_queries';
Variable_name Value Variable_name Value
Slow_queries 1 Slow_queries 1
----------------------------------------------------------------
SHOW TRIGGERS LIKE 't1';
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def TRIGGERS TRIGGER_NAME Trigger 253 192 5 N 1 0 33
def TRIGGERS EVENT_MANIPULATION Event 253 18 6 N 1 0 33
def TRIGGERS EVENT_OBJECT_TABLE Table 253 192 2 N 1 0 33
def TRIGGERS ACTION_STATEMENT Statement 252 589815 10 N 17 0 33
def TRIGGERS ACTION_TIMING Timing 253 18 6 N 1 0 33
def TRIGGERS CREATED Created 12 19 0 Y 128 0 63
def TRIGGERS SQL_MODE sql_mode 252 589815 0 N 17 0 33
def TRIGGERS DEFINER Definer 252 589815 14 N 17 0 33
Trigger Event Table Statement Timing Created sql_mode Definer
t1_bi INSERT t1 SET @a = 1 BEFORE NULL root@localhost
----------------------------------------------------------------
SELECT
TRIGGER_CATALOG,
TRIGGER_SCHEMA,
TRIGGER_NAME,
EVENT_MANIPULATION,
EVENT_OBJECT_CATALOG,
EVENT_OBJECT_SCHEMA,
EVENT_OBJECT_TABLE,
ACTION_CONDITION,
ACTION_STATEMENT,
ACTION_ORIENTATION,
ACTION_TIMING,
ACTION_REFERENCE_OLD_TABLE,
ACTION_REFERENCE_NEW_TABLE,
ACTION_REFERENCE_OLD_ROW,
ACTION_REFERENCE_NEW_ROW,
SQL_MODE,
DEFINER
FROM INFORMATION_SCHEMA.TRIGGERS
WHERE trigger_name = 't1_bi';
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def TRIGGERS TRIGGER_CATALOG TRIGGER_CATALOG 253 1536 0 Y 0 0 33
def TRIGGERS TRIGGER_SCHEMA TRIGGER_SCHEMA 253 192 4 N 1 0 33
def TRIGGERS TRIGGER_NAME TRIGGER_NAME 253 192 5 N 1 0 33
def TRIGGERS EVENT_MANIPULATION EVENT_MANIPULATION 253 18 6 N 1 0 33
def TRIGGERS EVENT_OBJECT_CATALOG EVENT_OBJECT_CATALOG 253 1536 0 Y 0 0 33
def TRIGGERS EVENT_OBJECT_SCHEMA EVENT_OBJECT_SCHEMA 253 192 4 N 1 0 33
def TRIGGERS EVENT_OBJECT_TABLE EVENT_OBJECT_TABLE 253 192 2 N 1 0 33
def TRIGGERS ACTION_CONDITION ACTION_CONDITION 252 589815 0 Y 16 0 33
def TRIGGERS ACTION_STATEMENT ACTION_STATEMENT 252 589815 10 N 17 0 33
def TRIGGERS ACTION_ORIENTATION ACTION_ORIENTATION 253 27 3 N 1 0 33
def TRIGGERS ACTION_TIMING ACTION_TIMING 253 18 6 N 1 0 33
def TRIGGERS ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_OLD_TABLE 253 192 0 Y 0 0 33
def TRIGGERS ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_NEW_TABLE 253 192 0 Y 0 0 33
def TRIGGERS ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_OLD_ROW 253 9 3 N 1 0 33
def TRIGGERS ACTION_REFERENCE_NEW_ROW ACTION_REFERENCE_NEW_ROW 253 9 3 N 1 0 33
def TRIGGERS SQL_MODE SQL_MODE 252 589815 0 N 17 0 33
def TRIGGERS DEFINER DEFINER 252 589815 14 N 17 0 33
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW SQL_MODE DEFINER
NULL test t1_bi INSERT NULL test t1 NULL SET @a = 1 ROW BEFORE NULL NULL OLD NEW root@localhost
----------------------------------------------------------------
SHOW CREATE VIEW v1;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def View 253 63 2 N 1 31 33
def Create View 253 1023 103 N 1 31 33
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1`
----------------------------------------------------------------
SELECT *
FROM INFORMATION_SCHEMA.VIEWS
WHERE table_name = 'v1';
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def VIEWS TABLE_CATALOG TABLE_CATALOG 253 1536 0 Y 0 0 33
def VIEWS TABLE_SCHEMA TABLE_SCHEMA 253 192 4 N 1 0 33
def VIEWS TABLE_NAME TABLE_NAME 253 192 2 N 1 0 33
def VIEWS VIEW_DEFINITION VIEW_DEFINITION 252 589815 41 N 17 0 33
def VIEWS CHECK_OPTION CHECK_OPTION 253 24 4 N 1 0 33
def VIEWS IS_UPDATABLE IS_UPDATABLE 253 9 2 N 1 0 33
def VIEWS DEFINER DEFINER 253 231 14 N 1 0 33
def VIEWS SECURITY_TYPE SECURITY_TYPE 253 21 7 N 1 0 33
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE
NULL test v1 /* ALGORITHM=UNDEFINED */ select 1 AS `1` NONE NO root@localhost DEFINER
----------------------------------------------------------------
SHOW CREATE PROCEDURE p1;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def Procedure 253 63 2 N 1 31 33
def sql_mode 253 0 0 N 1 31 33
def Create Procedure 253 2046 59 Y 0 31 33
Procedure sql_mode Create Procedure
p1 CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
SELECT 1
----------------------------------------------------------------
SELECT
SPECIFIC_NAME,
ROUTINE_CATALOG,
ROUTINE_SCHEMA,
ROUTINE_NAME,
ROUTINE_TYPE,
DTD_IDENTIFIER,
ROUTINE_BODY,
ROUTINE_DEFINITION,
EXTERNAL_NAME,
EXTERNAL_LANGUAGE,
PARAMETER_STYLE,
IS_DETERMINISTIC,
SQL_DATA_ACCESS,
SQL_PATH,
SECURITY_TYPE,
SQL_MODE,
ROUTINE_COMMENT,
DEFINER
FROM INFORMATION_SCHEMA.ROUTINES
WHERE routine_name = 'p1';
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def ROUTINES SPECIFIC_NAME SPECIFIC_NAME 253 192 2 N 1 0 33
def ROUTINES ROUTINE_CATALOG ROUTINE_CATALOG 253 1536 0 Y 0 0 33
def ROUTINES ROUTINE_SCHEMA ROUTINE_SCHEMA 253 192 4 N 1 0 33
def ROUTINES ROUTINE_NAME ROUTINE_NAME 253 192 2 N 1 0 33
def ROUTINES ROUTINE_TYPE ROUTINE_TYPE 253 27 9 N 1 0 33
def ROUTINES DTD_IDENTIFIER DTD_IDENTIFIER 253 192 0 Y 0 0 33
def ROUTINES ROUTINE_BODY ROUTINE_BODY 253 24 3 N 1 0 33
def ROUTINES ROUTINE_DEFINITION ROUTINE_DEFINITION 252 589815 8 Y 16 0 33
def ROUTINES EXTERNAL_NAME EXTERNAL_NAME 253 192 0 Y 0 0 33
def ROUTINES EXTERNAL_LANGUAGE EXTERNAL_LANGUAGE 253 192 0 Y 0 0 33
def ROUTINES PARAMETER_STYLE PARAMETER_STYLE 253 24 3 N 1 0 33
def ROUTINES IS_DETERMINISTIC IS_DETERMINISTIC 253 9 2 N 1 0 33
def ROUTINES SQL_DATA_ACCESS SQL_DATA_ACCESS 253 192 12 N 1 0 33
def ROUTINES SQL_PATH SQL_PATH 253 192 0 Y 0 0 33
def ROUTINES SECURITY_TYPE SECURITY_TYPE 253 21 7 N 1 0 33
def ROUTINES SQL_MODE SQL_MODE 252 589815 0 N 17 0 33
def ROUTINES ROUTINE_COMMENT ROUTINE_COMMENT 253 192 0 N 1 0 33
def ROUTINES DEFINER DEFINER 253 231 14 N 1 0 33
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE SQL_MODE ROUTINE_COMMENT DEFINER
p1 NULL test p1 PROCEDURE NULL SQL SELECT 1 NULL NULL SQL NO CONTAINS SQL NULL DEFINER root@localhost
----------------------------------------------------------------
SHOW CREATE FUNCTION f1;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def Function 253 63 2 N 1 31 33
def sql_mode 253 0 0 N 1 31 33
def Create Function 253 2046 74 Y 0 31 33
Function sql_mode Create Function
f1 CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11)
RETURN 1
----------------------------------------------------------------
SELECT
SPECIFIC_NAME,
ROUTINE_CATALOG,
ROUTINE_SCHEMA,
ROUTINE_NAME,
ROUTINE_TYPE,
DTD_IDENTIFIER,
ROUTINE_BODY,
ROUTINE_DEFINITION,
EXTERNAL_NAME,
EXTERNAL_LANGUAGE,
PARAMETER_STYLE,
IS_DETERMINISTIC,
SQL_DATA_ACCESS,
SQL_PATH,
SECURITY_TYPE,
SQL_MODE,
ROUTINE_COMMENT,
DEFINER
FROM INFORMATION_SCHEMA.ROUTINES
WHERE routine_name = 'f1';
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def ROUTINES SPECIFIC_NAME SPECIFIC_NAME 253 192 2 N 1 0 33
def ROUTINES ROUTINE_CATALOG ROUTINE_CATALOG 253 1536 0 Y 0 0 33
def ROUTINES ROUTINE_SCHEMA ROUTINE_SCHEMA 253 192 4 N 1 0 33
def ROUTINES ROUTINE_NAME ROUTINE_NAME 253 192 2 N 1 0 33
def ROUTINES ROUTINE_TYPE ROUTINE_TYPE 253 27 8 N 1 0 33
def ROUTINES DTD_IDENTIFIER DTD_IDENTIFIER 253 192 7 Y 0 0 33
def ROUTINES ROUTINE_BODY ROUTINE_BODY 253 24 3 N 1 0 33
def ROUTINES ROUTINE_DEFINITION ROUTINE_DEFINITION 252 589815 8 Y 16 0 33
def ROUTINES EXTERNAL_NAME EXTERNAL_NAME 253 192 0 Y 0 0 33
def ROUTINES EXTERNAL_LANGUAGE EXTERNAL_LANGUAGE 253 192 0 Y 0 0 33
def ROUTINES PARAMETER_STYLE PARAMETER_STYLE 253 24 3 N 1 0 33
def ROUTINES IS_DETERMINISTIC IS_DETERMINISTIC 253 9 2 N 1 0 33
def ROUTINES SQL_DATA_ACCESS SQL_DATA_ACCESS 253 192 12 N 1 0 33
def ROUTINES SQL_PATH SQL_PATH 253 192 0 Y 0 0 33
def ROUTINES SECURITY_TYPE SECURITY_TYPE 253 21 7 N 1 0 33
def ROUTINES SQL_MODE SQL_MODE 252 589815 0 N 17 0 33
def ROUTINES ROUTINE_COMMENT ROUTINE_COMMENT 253 192 0 N 1 0 33
def ROUTINES DEFINER DEFINER 253 231 14 N 1 0 33
SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE SQL_MODE ROUTINE_COMMENT DEFINER
f1 NULL test f1 FUNCTION int(11) SQL RETURN 1 NULL NULL SQL NO CONTAINS SQL NULL DEFINER root@localhost
----------------------------------------------------------------
DROP DATABASE mysqltest1;
DROP TABLE t1;
DROP VIEW v1;
DROP PROCEDURE p1;
DROP FUNCTION f1;
set names koi8r;
DROP DATABASE IF EXISTS mysqltest1;
CREATE DATABASE mysqltest1;
use mysqltest1;
CREATE TABLE t1(ËÏÌÏÎËÁ1 INT);
---> Dumping mysqltest1 to show_check.mysqltest1.sql
DROP DATABASE mysqltest1;
---> Restoring mysqltest1...
SHOW CREATE TABLE mysqltest1.t1;
Table Create Table
t1 CREATE TABLE `t1` (
`ËÏÌÏÎËÁ1` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP DATABASE mysqltest1;
use test;
flush status;
show variables like "log_queries_not_using_indexes";
Variable_name Value
log_queries_not_using_indexes ON
select 1 from information_schema.tables limit 1;
1
1
show status like 'slow_queries';
Variable_name Value
Slow_queries 1
set global log_queries_not_using_indexes=OFF;
show variables like "log_queries_not_using_indexes";
Variable_name Value
log_queries_not_using_indexes OFF
select 1 from information_schema.tables limit 1;
1
1
show status like 'slow_queries';
Variable_name Value
Slow_queries 1
set global log_queries_not_using_indexes=ON;
show variables like "log_queries_not_using_indexes";
Variable_name Value
log_queries_not_using_indexes ON
select 1 from information_schema.tables limit 1;
1
1
show status like 'slow_queries';
Variable_name Value
Slow_queries 2
show variables like 'myisam_recover_options';
Variable_name Value
myisam_recover_options OFF
End of 5.0 tests
create table t1 (a int); create table t1 (a int);
create trigger tr1 before insert on t1 for each row create trigger tr1 before insert on t1 for each row
begin begin
...@@ -1204,7 +1444,7 @@ set names koi8r; ...@@ -1204,7 +1444,7 @@ set names koi8r;
DROP DATABASE IF EXISTS mysqltest1; DROP DATABASE IF EXISTS mysqltest1;
CREATE DATABASE mysqltest1; CREATE DATABASE mysqltest1;
use mysqltest1; use mysqltest1;
CREATE TABLE t1(1 INT); CREATE TABLE t1(ËÏÌÏÎËÁ1 INT);
---> Dumping mysqltest1 to show_check.mysqltest1.sql ---> Dumping mysqltest1 to show_check.mysqltest1.sql
...@@ -1216,7 +1456,7 @@ DROP DATABASE mysqltest1; ...@@ -1216,7 +1456,7 @@ DROP DATABASE mysqltest1;
SHOW CREATE TABLE mysqltest1.t1; SHOW CREATE TABLE mysqltest1.t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`1` int(11) DEFAULT NULL `ËÏÌÏÎËÁ1` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP DATABASE mysqltest1; DROP DATABASE mysqltest1;
use test; use test;
...@@ -1393,14 +1633,14 @@ DROP PROCEDURE IF EXISTS p1; ...@@ -1393,14 +1633,14 @@ DROP PROCEDURE IF EXISTS p1;
DROP FUNCTION IF EXISTS f1; DROP FUNCTION IF EXISTS f1;
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
DROP EVENT IF EXISTS ev1; DROP EVENT IF EXISTS ev1;
CREATE VIEW v1 AS SELECT '' AS test; CREATE VIEW v1 AS SELECT 'ÔÅÓÔ' AS test;
CREATE PROCEDURE p1() SELECT '' AS test; CREATE PROCEDURE p1() SELECT 'ÔÅÓÔ' AS test;
CREATE FUNCTION f1() RETURNS CHAR(10) RETURN ''; CREATE FUNCTION f1() RETURNS CHAR(10) RETURN 'ÔÅÓÔ';
CREATE TABLE t1(c1 CHAR(10)); CREATE TABLE t1(c1 CHAR(10));
CREATE TRIGGER t1_bi BEFORE INSERT ON t1 CREATE TRIGGER t1_bi BEFORE INSERT ON t1
FOR EACH ROW FOR EACH ROW
SET NEW.c1 = ''; SET NEW.c1 = 'ÔÅÓÔ';
CREATE EVENT ev1 ON SCHEDULE AT '2030-01-01 00:00:00' DO SELECT '' AS test; CREATE EVENT ev1 ON SCHEDULE AT '2030-01-01 00:00:00' DO SELECT 'ÔÅÓÔ' AS test;
set names utf8; set names utf8;
SHOW CREATE VIEW v1; SHOW CREATE VIEW v1;
View Create View character_set_client collation_connection View Create View character_set_client collation_connection
......
...@@ -2469,7 +2469,7 @@ Database (foo) ...@@ -2469,7 +2469,7 @@ Database (foo)
Level Code Message Level Code Message
Field Type Null Key Default Extra Field Type Null Key Default Extra
id char(16) NO id char(16) NO
data int(11) NO data int(11) NO NULL
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
Database Table In_use Name_locked Database Table In_use Name_locked
Privilege Context Comment Privilege Context Comment
...@@ -2523,7 +2523,7 @@ Database (foo) ...@@ -2523,7 +2523,7 @@ Database (foo)
Level Code Message Level Code Message
Field Type Null Key Default Extra Field Type Null Key Default Extra
id char(16) NO id char(16) NO
data int(11) NO data int(11) NO NULL
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
Database Table In_use Name_locked Database Table In_use Name_locked
Privilege Context Comment Privilege Context Comment
......
...@@ -1675,7 +1675,7 @@ t1 CREATE TABLE `t1` ( ...@@ -1675,7 +1675,7 @@ t1 CREATE TABLE `t1` (
show columns from t1; show columns from t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
a int(11) YES 1 a int(11) YES 1
b enum('value','_value','') NO b enum('value','_value','') NO NULL
drop table t1; drop table t1;
CREATE TABLE t1 (c enum('a', 'A') BINARY); CREATE TABLE t1 (c enum('a', 'A') BINARY);
INSERT INTO t1 VALUES ('a'),('A'); INSERT INTO t1 VALUES ('a'),('A');
......
...@@ -63,9 +63,9 @@ time_field time NULL YES NULL # ...@@ -63,9 +63,9 @@ time_field time NULL YES NULL #
date_time datetime NULL YES NULL # date_time datetime NULL YES NULL #
blob_col blob NULL YES NULL # blob_col blob NULL YES NULL #
tinyblob_col tinyblob NULL YES NULL # tinyblob_col tinyblob NULL YES NULL #
mediumblob_col mediumblob NULL NO # mediumblob_col mediumblob NULL NO NULL #
longblob_col longblob NULL NO # longblob_col longblob NULL NO NULL #
options enum('one','two','tree') latin1_swedish_ci NO MUL # options enum('one','two','tree') latin1_swedish_ci NO MUL NULL #
flags set('one','two','tree') latin1_swedish_ci NO # flags set('one','two','tree') latin1_swedish_ci NO #
show keys from t1; show keys from t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
...@@ -214,7 +214,7 @@ Field Type Collation Null Key Default Extra Privileges Comment ...@@ -214,7 +214,7 @@ Field Type Collation Null Key Default Extra Privileges Comment
auto int(5) unsigned NULL NO MUL NULL auto_increment # auto int(5) unsigned NULL NO MUL NULL auto_increment #
string char(10) latin1_swedish_ci YES newdefault # string char(10) latin1_swedish_ci YES newdefault #
tiny tinyint(4) NULL NO MUL 0 # tiny tinyint(4) NULL NO MUL 0 #
short smallint(6) NULL NO MUL # short smallint(6) NULL NO MUL NULL #
medium mediumint(8) NULL NO MUL 0 # medium mediumint(8) NULL NO MUL 0 #
long_int int(11) NULL NO 0 # long_int int(11) NULL NO 0 #
longlong bigint(13) NULL NO MUL 0 # longlong bigint(13) NULL NO MUL 0 #
...@@ -231,8 +231,8 @@ time_field time NULL YES NULL # ...@@ -231,8 +231,8 @@ time_field time NULL YES NULL #
date_time datetime NULL YES NULL # date_time datetime NULL YES NULL #
new_blob_col varchar(20) latin1_swedish_ci YES NULL # new_blob_col varchar(20) latin1_swedish_ci YES NULL #
tinyblob_col tinyblob NULL YES NULL # tinyblob_col tinyblob NULL YES NULL #
mediumblob_col mediumblob NULL NO # mediumblob_col mediumblob NULL NO NULL #
options enum('one','two','tree') latin1_swedish_ci NO MUL # options enum('one','two','tree') latin1_swedish_ci NO MUL NULL #
flags set('one','two','tree') latin1_swedish_ci NO # flags set('one','two','tree') latin1_swedish_ci NO #
new_field char(10) latin1_swedish_ci NO new # new_field char(10) latin1_swedish_ci NO new #
show full columns from t2; show full columns from t2;
...@@ -240,7 +240,7 @@ Field Type Collation Null Key Default Extra Privileges Comment ...@@ -240,7 +240,7 @@ Field Type Collation Null Key Default Extra Privileges Comment
auto int(5) unsigned NULL NO 0 # auto int(5) unsigned NULL NO 0 #
string char(10) latin1_swedish_ci YES newdefault # string char(10) latin1_swedish_ci YES newdefault #
tiny tinyint(4) NULL NO 0 # tiny tinyint(4) NULL NO 0 #
short smallint(6) NULL NO # short smallint(6) NULL NO NULL #
medium mediumint(8) NULL NO 0 # medium mediumint(8) NULL NO 0 #
long_int int(11) NULL NO 0 # long_int int(11) NULL NO 0 #
longlong bigint(13) NULL NO 0 # longlong bigint(13) NULL NO 0 #
...@@ -257,8 +257,8 @@ time_field time NULL YES NULL # ...@@ -257,8 +257,8 @@ time_field time NULL YES NULL #
date_time datetime NULL YES NULL # date_time datetime NULL YES NULL #
new_blob_col varchar(20) latin1_swedish_ci YES NULL # new_blob_col varchar(20) latin1_swedish_ci YES NULL #
tinyblob_col tinyblob NULL YES NULL # tinyblob_col tinyblob NULL YES NULL #
mediumblob_col mediumblob NULL NO # mediumblob_col mediumblob NULL NO NULL #
options enum('one','two','tree') latin1_swedish_ci NO # options enum('one','two','tree') latin1_swedish_ci NO NULL #
flags set('one','two','tree') latin1_swedish_ci NO # flags set('one','two','tree') latin1_swedish_ci NO #
new_field char(10) latin1_swedish_ci NO new # new_field char(10) latin1_swedish_ci NO new #
select t1.auto,t2.auto from t1,t2 where t1.auto=t2.auto and ((t1.string<>t2.string and (t1.string is not null or t2.string is not null)) or (t1.tiny<>t2.tiny and (t1.tiny is not null or t2.tiny is not null)) or (t1.short<>t2.short and (t1.short is not null or t2.short is not null)) or (t1.medium<>t2.medium and (t1.medium is not null or t2.medium is not null)) or (t1.long_int<>t2.long_int and (t1.long_int is not null or t2.long_int is not null)) or (t1.longlong<>t2.longlong and (t1.longlong is not null or t2.longlong is not null)) or (t1.real_float<>t2.real_float and (t1.real_float is not null or t2.real_float is not null)) or (t1.real_double<>t2.real_double and (t1.real_double is not null or t2.real_double is not null)) or (t1.utiny<>t2.utiny and (t1.utiny is not null or t2.utiny is not null)) or (t1.ushort<>t2.ushort and (t1.ushort is not null or t2.ushort is not null)) or (t1.umedium<>t2.umedium and (t1.umedium is not null or t2.umedium is not null)) or (t1.ulong<>t2.ulong and (t1.ulong is not null or t2.ulong is not null)) or (t1.ulonglong<>t2.ulonglong and (t1.ulonglong is not null or t2.ulonglong is not null)) or (t1.time_stamp<>t2.time_stamp and (t1.time_stamp is not null or t2.time_stamp is not null)) or (t1.date_field<>t2.date_field and (t1.date_field is not null or t2.date_field is not null)) or (t1.time_field<>t2.time_field and (t1.time_field is not null or t2.time_field is not null)) or (t1.date_time<>t2.date_time and (t1.date_time is not null or t2.date_time is not null)) or (t1.new_blob_col<>t2.new_blob_col and (t1.new_blob_col is not null or t2.new_blob_col is not null)) or (t1.tinyblob_col<>t2.tinyblob_col and (t1.tinyblob_col is not null or t2.tinyblob_col is not null)) or (t1.mediumblob_col<>t2.mediumblob_col and (t1.mediumblob_col is not null or t2.mediumblob_col is not null)) or (t1.options<>t2.options and (t1.options is not null or t2.options is not null)) or (t1.flags<>t2.flags and (t1.flags is not null or t2.flags is not null)) or (t1.new_field<>t2.new_field and (t1.new_field is not null or t2.new_field is not null))); select t1.auto,t2.auto from t1,t2 where t1.auto=t2.auto and ((t1.string<>t2.string and (t1.string is not null or t2.string is not null)) or (t1.tiny<>t2.tiny and (t1.tiny is not null or t2.tiny is not null)) or (t1.short<>t2.short and (t1.short is not null or t2.short is not null)) or (t1.medium<>t2.medium and (t1.medium is not null or t2.medium is not null)) or (t1.long_int<>t2.long_int and (t1.long_int is not null or t2.long_int is not null)) or (t1.longlong<>t2.longlong and (t1.longlong is not null or t2.longlong is not null)) or (t1.real_float<>t2.real_float and (t1.real_float is not null or t2.real_float is not null)) or (t1.real_double<>t2.real_double and (t1.real_double is not null or t2.real_double is not null)) or (t1.utiny<>t2.utiny and (t1.utiny is not null or t2.utiny is not null)) or (t1.ushort<>t2.ushort and (t1.ushort is not null or t2.ushort is not null)) or (t1.umedium<>t2.umedium and (t1.umedium is not null or t2.umedium is not null)) or (t1.ulong<>t2.ulong and (t1.ulong is not null or t2.ulong is not null)) or (t1.ulonglong<>t2.ulonglong and (t1.ulonglong is not null or t2.ulonglong is not null)) or (t1.time_stamp<>t2.time_stamp and (t1.time_stamp is not null or t2.time_stamp is not null)) or (t1.date_field<>t2.date_field and (t1.date_field is not null or t2.date_field is not null)) or (t1.time_field<>t2.time_field and (t1.time_field is not null or t2.time_field is not null)) or (t1.date_time<>t2.date_time and (t1.date_time is not null or t2.date_time is not null)) or (t1.new_blob_col<>t2.new_blob_col and (t1.new_blob_col is not null or t2.new_blob_col is not null)) or (t1.tinyblob_col<>t2.tinyblob_col and (t1.tinyblob_col is not null or t2.tinyblob_col is not null)) or (t1.mediumblob_col<>t2.mediumblob_col and (t1.mediumblob_col is not null or t2.mediumblob_col is not null)) or (t1.options<>t2.options and (t1.options is not null or t2.options is not null)) or (t1.flags<>t2.flags and (t1.flags is not null or t2.flags is not null)) or (t1.new_field<>t2.new_field and (t1.new_field is not null or t2.new_field is not null)));
...@@ -276,8 +276,8 @@ t1 int(1) NULL NO 0 # ...@@ -276,8 +276,8 @@ t1 int(1) NULL NO 0 #
t2 varchar(1) latin1_swedish_ci NO # t2 varchar(1) latin1_swedish_ci NO #
t3 varchar(256) latin1_swedish_ci NO # t3 varchar(256) latin1_swedish_ci NO #
t4 varbinary(256) NULL NO # t4 varbinary(256) NULL NO #
t5 longtext latin1_swedish_ci NO # t5 longtext latin1_swedish_ci NO NULL #
t6 longblob NULL NO # t6 longblob NULL NO NULL #
t7 char(0) latin1_swedish_ci NO # t7 char(0) latin1_swedish_ci NO #
t8 binary(0) NULL NO # t8 binary(0) NULL NO #
select t1,t2,length(t3),length(t4),length(t5),length(t6),t7,t8 from t2; select t1,t2,length(t3),length(t4),length(t5),length(t6),t7,t8 from t2;
......
...@@ -1072,6 +1072,23 @@ connection default; ...@@ -1072,6 +1072,23 @@ connection default;
drop user mysqltest_1@localhost; drop user mysqltest_1@localhost;
drop database mysqltest; drop database mysqltest;
#
# Bug#27747 database metadata doesn't return sufficient column default info
#
create table t1 (
f1 varchar(50),
f2 varchar(50) not null,
f3 varchar(50) default '',
f4 varchar(50) default NULL,
f5 bigint not null,
f6 bigint not null default 10,
f7 datetime not null,
f8 datetime default '2006-01-01'
);
select column_default from information_schema.columns where table_name= 't1';
show columns from t1;
drop table t1;
--echo End of 5.0 tests. --echo End of 5.0 tests.
# #
# Show engines # Show engines
......
...@@ -975,6 +975,60 @@ static void append_directory(THD *thd, String *packet, const char *dir_type, ...@@ -975,6 +975,60 @@ static void append_directory(THD *thd, String *packet, const char *dir_type,
#define LIST_PROCESS_HOST_LEN 64 #define LIST_PROCESS_HOST_LEN 64
static bool get_field_default_value(THD *thd, TABLE *table,
Field *field, String *def_value,
bool quoted)
{
bool has_default;
bool has_now_default;
/*
We are using CURRENT_TIMESTAMP instead of NOW because it is
more standard
*/
has_now_default= table->timestamp_field == field &&
field->unireg_check != Field::TIMESTAMP_UN_FIELD;
has_default= (field->type() != FIELD_TYPE_BLOB &&
!(field->flags & NO_DEFAULT_VALUE_FLAG) &&
field->unireg_check != Field::NEXT_NUMBER &&
!((thd->variables.sql_mode & (MODE_MYSQL323 | MODE_MYSQL40))
&& has_now_default));
def_value->length(0);
if (has_default)
{
if (has_now_default)
def_value->append(STRING_WITH_LEN("CURRENT_TIMESTAMP"));
else if (!field->is_null())
{ // Not null by default
char tmp[MAX_FIELD_WIDTH];
String type(tmp, sizeof(tmp), field->charset());
field->val_str(&type);
if (type.length())
{
String def_val;
uint dummy_errors;
/* convert to system_charset_info == utf8 */
def_val.copy(type.ptr(), type.length(), field->charset(),
system_charset_info, &dummy_errors);
if (quoted)
append_unescaped(def_value, def_val.ptr(), def_val.length());
else
def_value->append(def_val.ptr(), def_val.length());
}
else if (quoted)
def_value->append(STRING_WITH_LEN("''"));
}
else if (field->maybe_null() && quoted)
def_value->append(STRING_WITH_LEN("NULL")); // Null as default
else
return 0;
}
return has_default;
}
/* /*
Build a CREATE TABLE statement for a table. Build a CREATE TABLE statement for a table.
...@@ -989,11 +1043,11 @@ static void append_directory(THD *thd, String *packet, const char *dir_type, ...@@ -989,11 +1043,11 @@ static void append_directory(THD *thd, String *packet, const char *dir_type,
to tailor the format of the statement. Can be to tailor the format of the statement. Can be
NULL, in which case only SQL_MODE is considered NULL, in which case only SQL_MODE is considered
when building the statement. when building the statement.
NOTE NOTE
Currently always return 0, but might return error code in the Currently always return 0, but might return error code in the
future. future.
RETURN RETURN
0 OK 0 OK
*/ */
...@@ -1002,9 +1056,10 @@ int store_create_info(THD *thd, TABLE_LIST *table_list, String *packet, ...@@ -1002,9 +1056,10 @@ int store_create_info(THD *thd, TABLE_LIST *table_list, String *packet,
HA_CREATE_INFO *create_info_arg) HA_CREATE_INFO *create_info_arg)
{ {
List<Item> field_list; List<Item> field_list;
char tmp[MAX_FIELD_WIDTH], *for_str, buff[128]; char tmp[MAX_FIELD_WIDTH], *for_str, buff[128], def_value_buf[MAX_FIELD_WIDTH];
const char *alias; const char *alias;
String type(tmp, sizeof(tmp), system_charset_info); String type(tmp, sizeof(tmp), system_charset_info);
String def_value(def_value_buf, sizeof(def_value_buf), system_charset_info);
Field **ptr,*field; Field **ptr,*field;
uint primary_key; uint primary_key;
KEY *key_info; KEY *key_info;
...@@ -1057,8 +1112,6 @@ int store_create_info(THD *thd, TABLE_LIST *table_list, String *packet, ...@@ -1057,8 +1112,6 @@ int store_create_info(THD *thd, TABLE_LIST *table_list, String *packet,
for (ptr=table->field ; (field= *ptr); ptr++) for (ptr=table->field ; (field= *ptr); ptr++)
{ {
bool has_default;
bool has_now_default;
uint flags = field->flags; uint flags = field->flags;
if (ptr != table->field) if (ptr != table->field)
...@@ -1106,44 +1159,10 @@ int store_create_info(THD *thd, TABLE_LIST *table_list, String *packet, ...@@ -1106,44 +1159,10 @@ int store_create_info(THD *thd, TABLE_LIST *table_list, String *packet,
packet->append(STRING_WITH_LEN(" NULL")); packet->append(STRING_WITH_LEN(" NULL"));
} }
/* if (get_field_default_value(thd, table, field, &def_value, 1))
Again we are using CURRENT_TIMESTAMP instead of NOW because it is
more standard
*/
has_now_default= table->timestamp_field == field &&
field->unireg_check != Field::TIMESTAMP_UN_FIELD;
has_default= (field->type() != MYSQL_TYPE_BLOB &&
!(field->flags & NO_DEFAULT_VALUE_FLAG) &&
field->unireg_check != Field::NEXT_NUMBER &&
!((thd->variables.sql_mode & (MODE_MYSQL323 | MODE_MYSQL40))
&& has_now_default));
if (has_default)
{ {
packet->append(STRING_WITH_LEN(" DEFAULT ")); packet->append(STRING_WITH_LEN(" DEFAULT "));
if (has_now_default) packet->append(def_value.ptr(), def_value.length(), system_charset_info);
packet->append(STRING_WITH_LEN("CURRENT_TIMESTAMP"));
else if (!field->is_null())
{ // Not null by default
type.set(tmp, sizeof(tmp), field->charset());
field->val_str(&type);
if (type.length())
{
String def_val;
uint dummy_errors;
/* convert to system_charset_info == utf8 */
def_val.copy(type.ptr(), type.length(), field->charset(),
system_charset_info, &dummy_errors);
append_unescaped(packet, def_val.ptr(), def_val.length());
}
else
packet->append(STRING_WITH_LEN("''"));
}
else if (field->maybe_null())
packet->append(STRING_WITH_LEN("NULL")); // Null as default
else
packet->append(tmp);
} }
if (!limited_mysql_mode && table->timestamp_field == field && if (!limited_mysql_mode && table->timestamp_field == field &&
...@@ -3599,7 +3618,6 @@ static int get_schema_column_record(THD *thd, TABLE_LIST *tables, ...@@ -3599,7 +3618,6 @@ static int get_schema_column_record(THD *thd, TABLE_LIST *tables,
bool is_blob; bool is_blob;
uint flags=field->flags; uint flags=field->flags;
char tmp[MAX_FIELD_WIDTH]; char tmp[MAX_FIELD_WIDTH];
char tmp1[MAX_FIELD_WIDTH];
String type(tmp,sizeof(tmp), system_charset_info); String type(tmp,sizeof(tmp), system_charset_info);
char *end; char *end;
int decimals, field_length; int decimals, field_length;
...@@ -3645,31 +3663,10 @@ static int get_schema_column_record(THD *thd, TABLE_LIST *tables, ...@@ -3645,31 +3663,10 @@ static int get_schema_column_record(THD *thd, TABLE_LIST *tables,
table->field[7]->store(type.ptr(), table->field[7]->store(type.ptr(),
(tmp_buff ? tmp_buff - type.ptr() : (tmp_buff ? tmp_buff - type.ptr() :
type.length()), cs); type.length()), cs);
if (show_table->timestamp_field == field &&
field->unireg_check != Field::TIMESTAMP_UN_FIELD) if (get_field_default_value(thd, show_table, field, &type, 0))
{
table->field[5]->store(STRING_WITH_LEN("CURRENT_TIMESTAMP"), cs);
table->field[5]->set_notnull();
}
else if (field->unireg_check != Field::NEXT_NUMBER &&
!field->is_null() &&
!(field->flags & NO_DEFAULT_VALUE_FLAG))
{
String def(tmp1,sizeof(tmp1), cs);
type.set(tmp, sizeof(tmp), field->charset());
field->val_str(&type);
uint dummy_errors;
def.copy(type.ptr(), type.length(), type.charset(), cs, &dummy_errors);
table->field[5]->store(def.ptr(), def.length(), def.charset());
table->field[5]->set_notnull();
}
else if (field->unireg_check == Field::NEXT_NUMBER ||
lex->sql_command != SQLCOM_SHOW_FIELDS ||
field->maybe_null())
table->field[5]->set_null(); // Null as default
else
{ {
table->field[5]->store("",0, cs); table->field[5]->store(type.ptr(), type.length(), cs);
table->field[5]->set_notnull(); table->field[5]->set_notnull();
} }
pos=(uchar*) ((flags & NOT_NULL_FLAG) ? "NO" : "YES"); pos=(uchar*) ((flags & NOT_NULL_FLAG) ? "NO" : "YES");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment